我有一个双1.4291400000000001 我希望有一个双重字符串表示。
获得1.42914
的最佳/标准方法是什么?答案 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