0%

C#数字

浮点数

浮点数的精度是可变的。除非用分数表示时分母恰好是2的正数次幂,否则用二进制浮点类型无法准确的表示该数。0.1 会有可能会表示成0.99999999999或1.000000000001.

decimal类型保证范围内的所有十进制数都是精确的。所以,对于decimal类型来说,0.1就是0.1而不是一个近似值。虽然decimal具有比浮点类型更高的精度,但是它的范围较小,所以,从浮点类型转换为decimal类型可能发生溢出错误。

Round-trip格式化

1.618033988749895 在Console.WriteLine($”{1.618033988749895}”)无法显示完全,最后一位会丢失。可以使用 string.Format(“{0:R}”,1.618033988749895)会返回结果1.618033988749895。