有一个很好的双重字符串表示

时间:2011-05-30 08:51:27

标签: c++ string double

我有一个双1.4291400000000001 我希望有一个双重字符串表示。

获得1.42914

的最佳/标准方法是什么?

2 个答案:

答案 0 :(得分:10)

怎么样:

std::stringstream ss;
ss << std::fixed << std::setprecision( N ) << double_number;
// ss.str() gives you the string 

答案 1 :(得分:2)

不能保证double具有恰好此值:1.4291400000000001。它可能比那个或稍微小一些。更不用说那就是。

在这个事实之后,我可以说没有最好的方法可以从中获得1.42914。您可能会得到1.42913,因为实际的双倍值可能是:1.4291399999999999而不是上述值。

阅读本文:What Every Computer Scientist Should Know About Floating-Point Arithmetic