В стандартной библиотеке Arduino есть функция, которая называется dtostrf(). Я думаю об этом как «Десятичное число в строку». Вы передаете число с плавающей запятой, какой ширины вы хотите, чтобы было целое число (если оно будет соответствовать), количество десятичных знаков точности - и буфер, который вы хотите заполнить.
Обратите внимание, что! Вы должны предоставить буфер, и вы должны быть осторожны, чтобы предоставить более чем достаточно! Не забудьте также добавить 1 (чтобы сохранить символ NUL в конце):
char result[8]; // Buffer big enough for 7-character float
dtostrf(resistance, 6, 2, result); // Leave room for too large numbers!
Это даст resultзначения как " 1.23"и " -1.23"и "123456789"(без кавычек). Обратите внимание на последний пример - он не будет усекать число, если оно слишком большое, и этот 10- символьный result(не забудьте последний NUL) просто переполнил ваш буфер ...
Кстати, если вы укажете отрицательную ширину, он не будет выравнивать по правому краю ответ, он будет выравнивать по левому краю (ставьте любые пробелы в конце вместо начала).