Функции, которые принимают значение с плавающей запятой, но не параметр точности, гарантируют, что строковое представление состоит из наименьшего количества символов, так что перед точкой счисления (если она есть) есть хотя бы одна цифра, и анализ представления с использованием соответствующей функции from_chars точно восстанавливает значение.
Если таких представлений несколько, представление с наименьшей разницей из значения аргумента с плавающей запятой, разрешая все оставшиеся связи с помощью округления в соответствии с round_to_nearest ([round.style]).
Я не понимаю, когда на самом деле произойдет самое последнее устранение неоднозначности (с использованием round_to_nearest).
Предположительно, это нарушает точную связь, когда последняя ненулевая цифра в числе равна 5, и это цифра не обязательно представляет одно и то же значение.
Например, гипотетически:
- Если точное значение 1,25 можно представить как 1,2 или 1,3, это разорвет связь между 1,2 и 1,3
- Если точное значение 1,24 или 1.26 может быть представлено как 1.2 или 1.3, предпочтительно 1.2 и 1.3 соответственно. Это говорит нам о том, что актуальны только числа, оканчивающиеся на 5.
- Если точное значение 1,25 можно представить как 1 или 2, то 1 будет предпочтительнее, поскольку оно имеет меньшую разницу с точным значением (против 0,75).
Код: Выделить всё
0.25
Это говорит нам о том, что 5 должно быть единственной незначащей цифрой.
Существует ли какой-либо реальный пример того, где это применимо?
Другими словами, существует ли число с плавающей запятой, точное десятичное число которого у значения есть младшая цифра 5, и только эта цифра незначительна?
Примечание: я не думаю, что первый маркер можно когда-либо применить к шестнадцатеричным числам с плавающей запятой
потому что вам просто нужно представить каждый квартет битов мантиссы с помощью шестнадцатеричной цифры и отбросить конечные нули.
Округление на самом деле никогда не происходит; нет незначащих цифр (кроме конечных нулей), и нечего устранять неоднозначность.
Подробнее здесь: https://stackoverflow.com/questions/798 ... to-nearest
Мобильная версия