Я продолжаю получать смешанные ответы о том, имеют ли число с плавающей запятой (т.е. float
, double
или long double
) одно и только одно значение точности или имеют значение точности, которое может меняться.
Одна тема под названием float vs. double precision, по-видимому, означает, что точность с плавающей запятой является абсолютной.
Однако другой вопрос под названием Разница между float и double говорит:
В общем случае double имеет от 15 до 16 десятичных цифр точности
Другой источник говорит,
Переменные типа float обычно имеют точность около 7 значащих цифр
Переменные типа double обычно имеют точность около 16 значащих цифр
Мне не нравится ссылаться на приближения, подобные приведенным выше, если я работаю с чувствительным кодом, который легко ломается, когда мои значения не точны. Поэтому давайте установим запись прямо. Является ли точность с плавающей запятой изменяемой или инвариантной, и почему?