Ada fungsi di perpustakaan Arduino standar yang disebut dtostrf()
. Saya menganggapnya sebagai "Desimal ke String Float". Anda melewati float, seberapa lebar Anda ingin seluruh bilangan menjadi (jika sesuai), jumlah desimal presisi - dan buffer yang Anda inginkan untuk diisi.
Catat itu! Anda perlu menyediakan buffer, dan Anda harus berhati-hati untuk menyediakan lebih dari cukup! Jangan lupa untuk menambahkan 1 juga (untuk menyimpan karakter NUL di akhir):
char result[8]; // Buffer big enough for 7-character float
dtostrf(resistance, 6, 2, result); // Leave room for too large numbers!
Ini akan memberi result
nilai seperti " 1.23"
dan " -1.23"
dan "123456789"
(tanpa tanda kutip). Perhatikan contoh terakhir - itu tidak akan memotong angkanya jika terlalu besar, dan 10 karakter itu result
(jangan lupa final NUL
) hanya meluap buffer Anda ...
Kebetulan, jika Anda menentukan lebar negatif, itu tidak akan membenarkan-kanan jawabannya, itu akan-membenarkan itu (menempatkan spasi di bagian akhir daripada di awal).