为什么 .net 模运算与 windows 小数计算器不同?
Why does .net modulo works different than windows calcuator for small numbers?
为什么 1070 % 21,4
在 windows 计算器和 .net 中给出不同的结果?
(.Net 结果是 7.1....)
结果应该总是 0
。我理解大数字的区别,但是这些小数字应该有效,恕我直言。
非常感谢!
它都在 % 运算符的文档中。它的浮点余数,不是模数。如果您想要与计算器兼容的东西,请使用
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}");
}
为什么 1070 % 21,4
在 windows 计算器和 .net 中给出不同的结果?
(.Net 结果是 7.1....)
结果应该总是 0
。我理解大数字的区别,但是这些小数字应该有效,恕我直言。
非常感谢!
它都在 % 运算符的文档中。它的浮点余数,不是模数。如果您想要与计算器兼容的东西,请使用 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}");
}