c# double decimal
两种类型
double范围比decimal大,精度比之低
类型 |
大致范围 |
精度 |
.NET Framework 类型 |
---|
double |
±5.0 × 10−324 到 ±1.7 × 10308 |
15 到 16 位 |
decimal |
(-7.9 x 1028 - 7.9 x 1028) / (100 - 28) |
28 到 29 位有效位 |
如果计算 2^64 次方
结果值是 18446744073709551616 这个数长度是20位,超过了double的15位精度了 如果用double表示, 则会表示为 18446744073709600000 最后五位变成0,并且向前进一位.
如果用decimal表示,没有超出精度范围.18446744073709551616M=18446744073709551616 ;
如果计算2^100次方 结果是31位数
2^100 = 1267650600228229401496703205376
则超出了这两种能表示的精度范围
-----------------------------------------------------------------------------------------------------------------
最小量子 bit
B(字节) = 8bit
K=2^10 B
M=2^10 K
G=2^10 M
T=2^10 G
P=2^10 T
E=2^10 P
Z=2^10 E
Y=2^10 Z