Tag: 除法

C#Maths给出了错误的结果!

我理解这个问题背后的原理,但是让我头疼的是认为这在整个应用程序中都会发生,我需要找到解决方案。 double Value = 141.1; double Discount = 25.0; double disc = Value * Discount / 100; // disc = 35.275 Value -= disc; // Value = 105.824999999999999 Value = Functions.Round(Value, 2); // Value = 105.82 我用双打代表很小的数字。 不知何故,在计算141.1-35.275中,结果的二进制表示给出了一个仅为0.0000000000001的数字。 不幸的是,由于我正在舍入这个数字,这给出了错误的答案。 我已经阅读过使用Decimals而不是Doubles但我不能用Decimal替换Double的每个实例。 有没有更简单的方法来解决这个问题?