tem*_*ema 8 c c++ types visual-studio-2008
我有点坚持使用最大可用精度存储数字:
double tmp = 569.232306826889043804840184748172760009765625L;
Run Code Online (Sandbox Code Playgroud)
我正试图在屏幕上打印它:
printf("%0.52f\n", tmp);
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的:
569.2323068268890400000000000000000000000000000000000000
这是我能达到的最高精度吗?
PS我正在使用Visual Studio 2008
Use*_*ess 15
double通常以IEEE 754 binary64格式存储.
binary64具有52 位精度,而不是52位十进制数 - 这相当于最多17位十进制数,这就是您要显示的数字.
这是我能达到的最高精度吗?
有些平台可能会提供一个long double
实际上比a大的平台double
,但是你的平台似乎没有.
如果想要更高的精度,可以使用一个库,该库可以显示硬件支持的更大/更精确的类型(例如80位扩展双精度型),也可以使用在软件中工作的任意精度库.
归档时间: |
|
查看次数: |
976 次 |
最近记录: |