Форматирование строки
- Войдите на сайт для отправки комментариев
Пт, 06/01/2017 - 13:38
Уважаемые , подскажите пожалуйста. Имеется переменная типа int в которую попадает диапазон значений от 0 до 999. Необходимо выплюнуть в порт значение состоящее из 3х цифр. Например, если переменная приняла значение 1, то в порт необходимо выплюнуть 001, если 0, то 000, если 99, то 099. Первое,что пришло на ум ,такой код, но ведь можно как то изящнее?
int s; String u; if (s<1.0) u = "000"; if (9>=s>=1) u ="00"+String(s); if (99>=s>9) u ="0"+String(s); Serial.println(u);
Можно так:
String.Substring()
Этот вариант должен меньше кушать памяти . Он предпочтительней.
Спасибо уважаемые,заюзаю
Целый sprintf ради такого воробья? Да, Вы что, парни, Вы знаете сколько он "весит"? И всё это ради того, чтобы одну цифирьку выровнять?
Ваш вариант?
Ваш вариант?
Да, 100500 вариантов может быть. Если число от 0 до 999, то зачем тащить универсальные функции?
Ну, не знаю, ну, хоть так:
А теперь сравните
Как видите разница в 1500 байтов! А для данного скетча, так это почти в два раза!