所以我很惊讶我没有找到任何关于此事的内容。
我有一个测试C ++程序的python脚本。它需要以与std::setprecision
相同的方式格式化浮点数。这是一个像1.265这样的浮点数应该舍入到1.27(2 dp)。
现在我有以下代码:
"{:.2f}".format(myFloat)
问题是像1.265这样的数字被舍入到1.26并且我的测试失败了。 setprecision
轮次为1.265至1.27。
解决此问题的最佳方法是什么?
答案 0 :(得分:1)
您可以使用双舍入来克服二进制算法无法精确表示十进制值。
round(round(1.265, 3) + 0.0005, 2)