Працюємо з 09:00 до 20: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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Паста флюс RMA-223

Паста флюс RMA-223

Флюс для пайки в виде пасты. Легко наносить на место пайки. Сильно облегчает пайку радиодеталей и по..

29.83грн.

Корпус под Orange PI PC темный

Корпус под Orange PI PC темный

Темный корпус под мини-компьютер Orange PI PC без отверстия для вентилятораВерхнюю крышку можно сним..

210.44грн.

Терминальный разъемный коннектор угловой 2п

Терминальный разъемный коннектор угловой 2п

Разъемный двухпроводной коннектор для пайки на печатную платуПровода подводятся параллельно плате и ..

17.99грн.

Светодиод ультраяркий 3мм

Светодиод ультраяркий 3мм

Сверхяркий светодиод диаметром 3 ммКорпус прозрачный у светодиодов разного цвета свечения. То есть р..

0.68грн.

Ниодимовый магнит 10mm x 2mm N50

Ниодимовый магнит 10mm x 2mm N50

Цилиндрический ниодимовый магнит N50Размеры 10мм x 2ммИдеально подходит для работы в связке с магнит..

6.93грн.

Теги Arduino FLOAT