请教 long double
书上说是 1.7e-308~1.7e+308(长度64bit)google计算器能显示的数是
1.79769313*10^308
请问这个1.79769313是怎么来的?
(从longdouble的存储结构上) 首先给楼主更正一下:值域范围达到 1.7E+308 的是double 型,它是8字节;
long double 是10字节的,最大可到 1.1E+4932
这是 International Electrotechnical Commission(IEC) 在1989年定义的二元浮点算术标准(IEC60559)
C99 标准支持上述 IEC 浮点标准。不过早期的编译器把long double视同为double。
楼主应该查阅一下浮点数在计算机里的存储格式以及规则。 VC编译器也把long double 视为double,也就是说在vc中使用long double并不能提高精度 2^1024=1.797693134862315907729305190789e+308
1.79769313 就是这么来的
(用 WINDOWS 自带的计算器算的) 非常有用,非常感谢 :)
是不是目前的编译器都支持
long double?
或者还是
和平台相关的 支持,但是不同平台下精度可能不同 反正
128精度的标准快出来了
80位的早晚退休
呵呵 long double ?
VC 8byte
BCB10byte
G++ 12byte 12 byte 估计是出于字节对齐需要吧,
精度不会再提高,
因为CPU内部的寄存器存储容量是有限的。
页:
[1]