Нет.Предположим, что a = c, очень большое число, а b очень маленькое число.Возможно, что a - b
имеет представление меньше a
, но a + b
настолько близко к a
(и больше), что все равно оказывается наиболее точным представлением в виде a
.
Вот пример:
double a = 1L << 53;
double b = 1;
double c = a;
Console.WriteLine(a - b < c); // Prints True
Console.WriteLine(a < b + c); // Prints False
РЕДАКТИРОВАТЬ:
Вот еще один пример, который соответствует вашему отредактированному вопросу:
double a = 1.0;
double b = 1.0 / (1L << 53);
double c = a;
Console.WriteLine(a - b < c); // Prints True
Console.WriteLine(a < b + c); // Prints False
Другими словами, когда мы вычитаем очень маленькийчисло от 1, мы получаем результат меньше 1. Когда мы добавляем одно и то же число к 1, мы просто возвращаем 1 из-за ограничений двойной точности.