最近我发现C#的运算符%适用于double.尝试了一些事情,毕竟想出了这个测试:
class Program
{
static void test(double a, double b)
{
if (a % b != a - b * Math.Truncate(a / b))
{
Console.WriteLine(a + ", " + b);
}
}
static void Main(string[] args)
{
test(2.5, 7);
test(-6.7, -3);
test(8.7, 4);
//...
}
}
Run Code Online (Sandbox Code Playgroud)
这个测试中的一切都有效.是否a % b总是等同于a - b*Math.Round(a/b)?如果没有,请向我解释这个运营商是如何运作的.
编辑:回答詹姆斯L,我明白这是一个模数运算符和一切.我很好奇它是如何使用双重的,我理解的整数.