Вопросы типа "Почему не 0,1 + 0,1 + 0,1 + 0,1 + 0,1 + 0,1 + 0,1 + 0,1 = 0,8?" заставил меня думать, что...
... Было бы неплохо, если бы компилятор предупредил о константах с плавающей запятой, что он округляется до ближайшего представимого в двоичном типе с плавающей точкой (например, 0,1 и 0,8 округлены в плавающей точке счисления с плавающей точкой, иначе им понадобится бесконечное количество пространства для хранения бесконечного числа цифр).
Я искал предупреждения gcc и до сих пор не нашел для этой цели (-Wall
, -Wextra
, -Wfloat-equal
, -Wconversion
, -Wcoercion
(неподдерживаемый или только C), -Wtraditional
( C только), кажется, не делают то, что я хочу).
Я также не нашел такого предупреждения в компиляторе Microsoft Visual С++.
Не хватает ли скрытого или редко используемого параметра?
Существует ли какой-либо компилятор, который имеет такое предупреждение?
EDIT. Это предупреждение может быть полезно для образовательных целей и служить напоминанием тем, кто новый для плавающей точки.