【发布时间】:2015-06-05 00:15:21
【问题描述】:
我有点纠结于以最大可用精度存储数字:
double tmp = 569.232306826889043804840184748172760009765625L;
我正在尝试在屏幕上打印它:
printf("%0.52f\n", tmp);
这就是我所拥有的:
569.2323068268890400000000000000000000000000000000000000
这是我能达到的最大精度吗?
附言我正在使用 Visual Studio 2008
【问题讨论】:
-
在 C++ 中,您可以使用
std::numeric_limits找出限制和精度。 -
您还应该记住,不仅有精确度,还有精确度。很多十进制数不能用浮点数精确表示。
-
I'm a bit stucked with storing number with maximum available precision为什么卡住了?只需声明一个double(或long double),您就有了“最大精度”。否则我不完全理解你的问题。 -
查看IEEE 754 了解有关浮点数的一些信息
-
如果您需要更高的精度,网上有很多高精度库。
标签: c++ c visual-studio-2008 types