dri*_*iis 17
是的,decimal就是为此而设计的.
但是,请注意小数类型的范围小于double.这是双倍可以保持更大的值,但它会失去精度.或者,如MSDN所述:
decimal关键字表示128位数据类型.与浮点类型相比,十进制类型具有更高的精度和更小的范围,这使其适用于财务和货币计算.十进制类型的近似范围和精度如下表所示.
之间的主要差别decimal并double是decimal被固定点和double是浮点.这意味着十进制存储精确值,而double表示由分数表示的值,并且不太精确.A decimal是128位,因此需要存储双倍空间.计算decimal也较慢(测量!).
如果你需要更高的精度,那么BigInteger可以在.NET 4中使用.(你需要自己处理小数点).在这里您应该知道,BigInteger是不可变的,因此对它的任何算术运算都将创建一个新实例 - 如果数字很大,这可能会导致性能下降.
我建议你仔细研究一下你需要多精确.也许你的算法可以使用规范化的值,可以更小?如果性能是一个问题,其中一个内置浮点类型可能会更快.
| 归档时间: |
|
| 查看次数: |
20194 次 |
| 最近记录: |