我想使用boost::format
将浮点数转换为字符串。
这些是预期结果的几个例子:
0.5 -> "0.5"
0 -> "0"
1.00001 -> "1"
3.66 -> "3.7"
我目前正在使用
boost::format("%1$.1f")
它主要起作用,但0
的结果是"0.0"
而1.00001
的结果是"1.0"
,而我想要"0"
和"1"
。
我需要改变什么才能摆脱毫无意义的.0
?
答案 0 :(得分:2)
使用条件在两种格式之间进行选择。
boost::format(abs(x-floor(x+0.05)) < 0.1 ? "%1$.0f" : "%1$.1f")