我想使用 boost::format
将 float 转换为字符串。
以下是预期结果的几个示例:
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
?
最佳答案
使用条件在两种格式之间进行选择。
boost::format(abs(x-floor(x+0.05)) < 0.1 ? "%1$.0f" : "%1$.1f")
关于c++ boost format float - 如何指定我不想要 .和以下零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17753675/