Являются ли типы с плавающей точкой «вложенными» для разных значений точности

#precision

Вопрос:

В настоящее время я пишу научный код на python. В этом коде используется несколько различных типов точности с плавающей точкой, а именно половинная, одинарная и двойная точность (с использованием numpy). Однако мой вопрос носит более общий характер, поскольку он не относится конкретно к python.

Вопрос: являются ли эти точности «вложенными» в том смысле, что любое число, точно представимое (т. е. без приближения) с более низкой точностью, также точно представимо с более высокой точностью.

Другая формулировка: Изменяю ли я значение поплавка при приведении к более высокой точности ?

Ответ №1:

Я совершенно уверен, что ответ » да » — по крайней мере, для стандартных типов с плавающей запятой IEEE754. Если вы приведете переменную, точно представляющую число, к типу с более высокой точностью, наименьшие значимые биты новой мантиссы будут равны нулю, поэтому ответ на ваш второй вопрос: Нет, числовое значение не будет изменено.

Комментарии:

1. Большое вам спасибо за этот четкий ответ. Честно говоря, это тоже то, о чем я думал, однако я не могу найти ссылку на этот факт