Подтвердить что ты не робот

MySQL. Как я могу округлить десятичные числа?

Например, у меня есть следующее значение:

0.000018

Это 6 знаков после запятой, но я хочу округлить его до ближайшего целого четвертого знака после запятой, чтобы:

0.000018 -> 0.0001

Я играл с функцией round(), но если я просто использую круглую функцию:

round(0.000018,4) = 0.0000

При работе с десятичными знаками в финансовых целях в этом случае нужно округлить и зарядить клиента вместо того, чтобы давать им халяву! Но round() будет округлять вверх или вниз в зависимости от значения, мне нужно постоянно округлить.

Есть ли простой способ сделать это?

4b9b3361

Ответ 1

Вы можете использовать ceil (потолок). Он только округляется, поэтому вам придется умножаться на 10000, делать потолок, а затем снова делить результат.

So ceil(0.000145* 10000) = ceil(1.45) = 2 Разделите назад, и у вас будет 0.0002

ИЗМЕНИТЬ: подождите, а? это не работает. Я имею в виду FLOOR, но работа одинакова: D Руководство находится на одной и той же странице:)

So floor(0.000145* 10000) = floor(1.45) = 1 Разделите назад, и у вас будет 0.0001

Ответ 2

Существует еще один метод, который должен добавить половину из десяти. Например: round(x+0.005, 2) где x равно 0.923 = 0.93, что уменьшает максимальную ошибку деления с плавающей запятой.

Ответ 3

Используйте ROUND(X,D), который округляет значения от X до D после запятой.