Страницы

Поиск по вопросам

четверг, 9 апреля 2020 г.

арифметические операции разных типов в mysql

#mysql

                    
Почему mysql возвращает странный результат:
'0.02' + 0.1 = 0.12000000000000001
    


Ответы

Ответ 1



Попробуйте выполнить то же самое скажем в консоли javascript в браузере и вы получите тот же результат. Это происходит из за того, что mysql как и многие другие программы для работы с дробными числами используют формат с плавающей точкой (который поддерживается на уровне процессоров). Данный формат хранит некоторую часть мантисы и показатель степени, но на мантису отведено ограниченное число бит. Для представления большего диапазона чисел мантиса хранится не как есть, а пересчитанная по определенной формуле для обеспечения большей плотности на бит для небольших чисел и меньшей - для больших. Из за этого формат с плавающей точкой не позволяет хранить абсолютно точные значения, а дает их с некоторой погрешностью.

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

Отправить комментарий