У меня есть вопрос низкого уровня:
Давайте предположим, что у нас есть десятичное число 0,1 (мы можем представить это очень точно, написав 1/10 - но это не решение).Преобразованный в двоичное число, это дает нам 0,00011 с последними 4 цифрами, бесконечно повторяющимися (0,0001100110011 ....).
Итак, теперь предположим, что мы хотим поместить это число в представление с плавающей запятой,например, IEEE 754 с одинарной точностью, и мы хотим округлить ее так, чтобы ближайшее возможное представление дало нам
1 0111 1110 0101 0101 0101 0101 0101 011
(fyi: последняя цифра должна быть 0 вместо 1если бы мы просто обрезали)
Теперь мой вопрос: как добиться этого в программном обеспечении?В конце концов, мы не можем просто использовать некоторые
x = ((x_floor-0.1) <(x_ceil-0.1))? X_floor: x_ceil; <br>, поскольку это будет означать «идеальный» 0.1, который является ядром моегопроблема.Есть идеи?