Округлить десятичное значение до ближайшего значения 0,05? - PullRequest
2 голосов
/ 13 июня 2011

Я читал Как округлить десятичное значение до ближайшего значения 0,05? .

Здесь упоминаются следующие вещи.

   Math.ceiling(myValue * 20) / 20

Как работает этот взлом?Я имею в виду, как мы пришли к этому решению?

Ответы [ 3 ]

5 голосов
/ 13 июня 2011

1/20 равно 0,05

1/100 равно 0,01

Если вы хотите округлить до 0,01, умножьте на 100, округлите и разделите на 100. Аналогично, чтобы округлить до 0,05, вы делаете то же самое, но с 20.

4 голосов
/ 13 июня 2011

Нет библиотеки для округления до 0,05, но есть функция для округления до 1,00: потолок.Это почти (ну, double не совсем точно) то же самое, что и вставленная вами формула (20 * 0,05 = 1)

Вы пытались заменить что-то для своей формулы и посмотреть, что происходит?

1.03 * 20 = 20.60
ceil(20.6) = 21
21/20 = 1.05
0 голосов
/ 13 июня 2011

отображает 0,05 на 1 (умножением) внутри функции Math.ceiling, а затем отображает результат обратно на 0,05 (делением)

...