Ответ 1
Из-за некоторых причин производительности %f
не входит в реализацию Arduino sprintf()
. Лучшим вариантом было бы использовать dtostrf()
- вы конвертируете значение с плавающей запятой в строку стиля C, подпись метода выглядит следующим образом:
char *dtostrf(double val, signed char width, unsigned char prec, char *s)
Используйте этот метод для преобразования его в строку C-Style, а затем используйте sprintf, например:
char str_temp[6];
/* 4 is mininum width, 2 is precision; float value is copied onto str_temp*/
dtostrf(temp, 4, 2, str_temp);
sprintf(temperature,"%s F", str_temp);
Вы можете изменить минимальную ширину и точность в соответствии с конвертируемой плавающей точкой.