我的浮点值介于00.00到99.99之间。我正在尝试将float值转换为字符串,并且转换应删除小数点分隔符。
flaot a = 00.17;
float b = 08.56;
要删除小数点分隔符,我要乘以* 100并使用ftoa()
函数转换为字符串。
a = a*100;
b = b*100;
ftoa(a, 0, temp_string);
puts(temp_string);
ftoa(b, 0, temp_string);
output is: 17, 856, 2898
我的输出字符串应如下所示
output: 0017,0856,2898
我可以在字符串中添加0,条件是数字是否小于99加上两个零,如果大于99而小于999则加上一个零。
有什么最好的方法可以完成这项工作吗?
答案 0 :(得分:3)
使用printf / sprintf可以指定要打印的数字的宽度,因此前导0。
class Logger : public Print {
public:
virtual size_t write(uint8_t);
}
给予:
size_t Logger::write(uint8_t c) {
if (this->serial != NULL) {
return this->serial->write(c);
}
return 0;
}
有关更多信息,请参见http://www.cplusplus.com/reference/cstdio/printf/
sprintf将格式化字符串,而不是将其打印到stdout,因此您可以按照自己的意愿输出它。