#mysql
Почему mysql возвращает странный результат: '0.02' + 0.1 = 0.12000000000000001
Ответы
Ответ 1
Попробуйте выполнить то же самое скажем в консоли javascript в браузере и вы получите тот же результат. Это происходит из за того, что mysql как и многие другие программы для работы с дробными числами используют формат с плавающей точкой (который поддерживается на уровне процессоров). Данный формат хранит некоторую часть мантисы и показатель степени, но на мантису отведено ограниченное число бит. Для представления большего диапазона чисел мантиса хранится не как есть, а пересчитанная по определенной формуле для обеспечения большей плотности на бит для небольших чисел и меньшей - для больших. Из за этого формат с плавающей точкой не позволяет хранить абсолютно точные значения, а дает их с некоторой погрешностью.
Комментариев нет:
Отправить комментарий