将浮点值转换为不带小数点分隔符的字符串

时间:2019-01-08 13:26:24

标签: c string floating-point type-conversion

我的浮点值介于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则加上一个零。

有什么最好的方法可以完成这项工作吗?

1 个答案:

答案 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,因此您可以按照自己的意愿输出它。