首页 > 解决方案 > 为什么 .net modulo 与 Windows calcuator 对小数的工作方式不同?

问题描述

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

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

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

非常感谢!

标签: c#calculatormodulo

解决方案


它全部在 % 运算符的文档中。它的浮点余数,而不是模数。如果您想要与计算器兼容的东西,请使用 此功能

例如:

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}");
}

推荐阅读