Math.Abs​​奇怪的行为

时间:2015-11-18 10:55:42

标签: c# .net math

我正在做以下等式,但结果并不像预期的那样

   double dasdas = Math.Abs(3.2 - 1.9);

结果是

1.3000000000000003

但是正确的结果应该是

1.3

这可能是什么原因?

c#4.5.2

enter image description here

2 个答案:

答案 0 :(得分:1)

这是因为您正在使用double - 这是一个浮点。这些按照定义这不能存储确切的数字。

您需要使用Decimal

看看hereWhat Every Computer Scientist Should Read About Floating Point

答案 1 :(得分:1)

使用decimal

decimal dasdas = Math.Abs(3.2m - 1.9m);