为什么.net模数与Windows计算器的工作方式不同?

问题描述 投票:-1回答:1

为什么1070 % 21,4在Windows计算器和.net中给出了不同的结果?

(.Net结果是7.1 ....)

结果应该始终是0。我理解与大数字的区别,但这些小数字应该有效,恕我直言。

非常感谢!

c# calculator modulo
1个回答
5
投票

它全部在%运算符的文档中。它的浮点余数,不是模数。如果你想要与Calculator兼容的东西,请使用this function

例如:

private static void ShowRemainders(double number1, double number2)
{
   var formula = $"{number1} / {number2}";
   var ieeeRemainder = Math.IEEERemainder(number1, number2);
   var remainder = number1 % number2;
   Console.WriteLine($"{formula,-16} (.IEEE) = {ieeeRemainder,18}");
   Console.WriteLine($"{formula,-16} (.NET)  = {remainder,18}");
}
© www.soinside.com 2019 - 2024. All rights reserved.