MySQL - значение 1 в DECIMAL (2, 2) выходит как 0.99
Я сохраняю денежные значения, и я читал, что FLOAT имеет проблемы с внутренним округлением (хотя я не могу сказать, что когда-либо замечал какие-либо проблемы), и что лучше использовать DECIMAL.
Итак, я использую DECIMAL, но когда я пытаюсь установить значение в 1, он сохраняется как 0.99. Я буду использовать это значение в JavaScript в какой-то момент, и я знаю, что мои вычисления JS будут неправильными, потому что это 0.99 не 1.00.
Почему он это делает, и я должен просто использовать FLOAT?
Ответы
Ответ 1
Вам нужно DECIMAL(4, 2)
взглядом вещей. DECIMAL(2, 2)
допускает только диапазон -0.99 to 0.99
Точность представляет собой количество значащих цифр, которые хранятся для значений, а шкала представляет количество цифр, которые можно сохранить после десятичной точки., поэтому в вашем случае вы не определили столбец, чтобы разрешить любую целочисленную часть вообще.