具有双精度的字符串表示

问题描述

我有一个双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
而不是上述值。 阅读此文章:每位计算机科学家都应了解的浮点算法