Значение операции «%» в C # для числового типа double

Недавно я обнаружил, что оператор C # % применимо к двойному. Попробовал кое-что и в конце концов придумал такой тест:

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);
        //...
    }
}

Все в этом тесте работает. Всегда ли a% b эквивалентно a - b * Math. Раунд (а / б) ? Если нет, объясните, пожалуйста, как на самом деле работает этот оператор.

РЕДАКТИРОВАТЬ: Отвечая Джеймсу Л. , я понимаю, что это оператор по модулю и все такое. Мне любопытно только, как это работает с двойными , целыми числами, которые я понимаю.

8
задан Chris Schiffhauer 4 October 2016 в 02:03
поделиться