Працюємо з 09:00 до 19:00 без вихідних
Київ біля ТЦ Квадрат бул.Перова

Похоже, что программное обеспечение Arduino не особо поддерживает отображение значений переменных с плавающей точкой. Конечно, здесь функция sprintf () не работает. Однако есть полезная функция с названием dtostrf (), которая преобразует данные с плавающей точкой в массив символов, поэтому они могут быть легко напечатаны.


Формат функции следующий

dtostrf(floatvar, StringLengthIncDecimalPoint, numVarsAfterDecimal, charbuf);

где:

floatvar - преобразуемая переменная типа float;

StringLengthIncDecimalPoint - длина получаемого символьного значения;

numVarsAfterDecimal - количество символов после запятой;

charbuf - символьный массив для сохранения результата преобразования

Следующий пример программы поможет понять что к чему

static float f_val = 123.6794;

static char outstr[15];


void setup() {

  dtostrf(f_val,7, 3, outstr);


  Serial.begin(9600);

  Serial.println(outstr);

}


void loop(){

}


В результате работы скетча получим

123.679

Имеем 7 символов вдлину, с тремя цифрами после запятой.

При этом, если бы входное значение было например 1.6794, что бы мы получили? Длина строчки символов осталась бы равной 7-ми, с  тремя цифрами после запятой, и это значит что функция вставит 2 пробела сначала строки.

  1.679

Теперь попробуйте сами.

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Выключатель круглый 16мм

Выключатель круглый 16мм

Круглый выключатель питанияЦвет черныйВнешний диаметр 16 ммУстановочный диаметр 15 ммРазмеры указаны..

10.30грн.

Винт М3х30мм оцинкованный

Винт М3х30мм оцинкованный

Винт оцинкованный с резьбой М3 для крепления элементов любительских проектовДлина резьбы 30 мм..

1.41грн.

BNO055 модуль абсолютного ориентирования в пространстве

BNO055 модуль абсолютного ориентирования в пространстве

Модуль специализированного интеллектуального датчика ориентации в пространстве. Содержит в своем сос..

341.02грн.

Винтовой коннектор на три провода

Винтовой коннектор на три провода

Монтируется на печатную плату или макетную платуРасстояние между выводами 5 мм..

5.55грн.

Фольгированный текстолит односторонний 70х100мм

Фольгированный текстолит односторонний 70х100мм

Односторонний фольгированный медью текстолит для изготовления печатных платТолщина 1,5 мм Размеры 7..

28.14грн.

Теги Arduino FLOAT