Існує функція в стандартній бібліотеці 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
) просто переповнив ваш буфер ...
Між іншим, якщо ви вкажете негативну ширину, відповідь не буде правильним виправданням, а виправдає її ліворуч (поставте будь-які пробіли в кінці замість початку).