请教double和decimal类型
double类型 范围5*10^-324 ~ 1.7*10^308 有效位 15~16 decimal类型 范围1.0*10^-28 ~ 7.9*10^28 有效位 28~29
我想问为什么double比decimal的范围广,但有效位比decimal少?
double类型 范围5*10^-324 ~ 1.7*10^308 有效位 15~16 decimal类型 范围1.0*10^-28 ~ 7.9*10^28 有效位 28~29
我想问为什么double比decimal的范围广,但有效位比decimal少?
re:
我也看书上说:
一个double 类型的变量所表示的数据范围为-5.0*10^-324到1.7*10^308,精确度可达15到16位.
decimal的表示范围还没有float广大约是1.0*10^-28到7.9*10^28 但精确度却可以达到28到29位.
后面还有注意:一个类型的所谓精确度并不是指其小数点后的精确位数,而是整个数字的总位数.
更加不明白,那为什么double 没有decimal精确度高!
这是MSDN上的解释,供各位参考:
Double 值类型表示一个值介于 -1.79769313486232e308 和 +1.79769313486232e308 之间的双精度 64 位数字,以及 +0 或-0、PositiveInfinity、NegativeInfinity 和非数字 (NaN)。Double 符合二进制浮点算法的 IEC 60559:1989 (IEEE 754) 标准。
decimal 关键字表示 128 位数据类型。同浮点型相比,decimal 类型具有更高的精度和更小的范围,这使它适合于财务和货币计算。