C#数据类型中的decimal精度比double更高

decimal 128bit大小 有效数字:28~29,虽然decimal类型有比浮点类型更高的精度,但它的范围更小。故double转decimal有可能发生溢出错误,此外,decimal的计算速度稍微慢一些。

Console.WriteLine(1.618031234567895);

输出结果:1.61803123456789

最后一个数字5丢失了,这符合我们对double类型精度的预期。

要显示具有完整精度的数字,必须将字面值显示地声明为decimal类型,这是通过追加一个m(或者M)来实现的:

Console.WriteLine(1.618031234567895m);

输出结果:1.618031234567895

之所以用m表示decimal,是因为这种数据类型经常用在货币(monetary)计算中。

原文地址:https://www.cnblogs.com/vaecole/p/5704218.html