问题描述
我有一个双1.4291400000000001
我想要一个双精度字符串表示。
什么是获得1.42914的最佳/标准方法
解决方法
关于什么:
std::stringstream ss;
ss << std::fixed << std::setprecision( N ) << double_number;
// ss.str() gives you the string
, 不能保证double
就是这个值:1.4291400000000001
。它可以大于或小于该值。更不像是那样。
在这个事实之后,我可以说没有最好的方法从中得到3英镑。您可能会得到1.42913
,因为实际的双精度值可能是:1.4291399999999999
而不是上述值。
阅读此文章:每位计算机科学家都应了解的浮点算法