3

我想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

4

1 回答 1

3

使用条件在两种格式之间进行选择。

boost::format(abs(x-floor(x+0.05)) < 0.1 ? "%1$.0f" : "%1$.1f")
于 2013-07-19T21:27:26.147 回答