浮動小数点を文字列にする(dtostrf)

一般的に浮動小数点(float,double)などの数値を文字列に変換する場合,sprintfを使います.しかし,printf系関数は規模が大きいためArduino等のマイコンには適さないことが多いです.実際,Arduinoのsprintf%fを使うともれなく?が帰ってきます.

char str[10];
sprintf(str, "%f", 10.8f);
// str == "?"

そのかわりにdtostrf関数をavr-libcが提供しています.

char str[10];
sprintf(10.8f, -1, 2, str);
// str == "10.80"

引数は,dtostrf(<数値>, <右づめ桁>, <小数点以下の桁数>, <文字列>)です.右づめ桁は変換した文字列がスペースで右づめになり,符号やピリオド,数字,スペースの合計桁数が指定した数になります.小数点以下桁数は,小数点以下表示する桁数です.右づめ桁が不要の場合は-1を指定すると左詰めになります.

results matching ""

    No results matching ""