C#十进制类型相等

Dan*_*Dan 2 .net c# floating-point equality decimal

C#十进制类型的相等比较是否比其他浮点类型更直观地预期?

Jon*_*øgh 5

我想这取决于你的直觉.我会假设有些人会想到将1乘以3除以1/3的结果,而其他人会想到更多的"哦,1除以3不能表示为十进制数,我们将要确定要保留多少位数,让我们用0.333".

如果你以前一种方式思考,对Decimal你没有多大帮助,但是如果你以后一种方式思考,并且在需要时明确关于舍入,那么"直观"操作更有可能不受十进制舍入误差的影响,例如除以10,将按预期运行.对于大多数人来说,这比二进制浮点类型的行为更直观,其中2的幂表现得很好,但10的幂表示不行.

  • @Noldorin - 无论如何.这个问题具体询问平等是否直观.我会说'(0.1m + 0.2m == 0.3m)== true`比`(0.1f + 0.2f == 0.3f)== false更直观 (3认同)