如何修复舍入错误

时间:2017-05-21 18:22:30

标签: c# math

我从下面的代码中得到了这个:

49

49.000000000000000000000000001

我想知道如何解决它,所以我回到49岁。

decimal a = 49;
decimal b = 24;

decimal result = a / b;

decimal c = result * b;

Console.WriteLine(a);
Console.WriteLine(c);

Windows 10计算器应用程序正确使用它,我猜它使用更精确。 必须有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我认为你实际上想要一个 lower 精度类型来进行数学计算。如果你使用双重类型,它可以正常工作:

double a = 49;
double b = 24;

double result = a / b;
double c = result * b;

Console.WriteLine(a);
Console.WriteLine(c);

答案 1 :(得分:-2)

不使用一个数字来存储商,而是使用两个数来存储商。

decimal a = 49;
decimal b = 24;

decimal resultNumerator = a;
decimal resultDenominator = b;

decimal c = (resultNumerator * b) / resultDenominator;

Console.WriteLine(a);
Console.WriteLine(c);