PHP Коммерческий раунд валюта - PullRequest
4 голосов
/ 27 марта 2012

Уважаемые Stackoverflowers,

Я хотел бы знать, какие решения вы можете придумать для решения следующей проблемы:

Вот что у меня есть:

13.90
5.03
7.06
2.51

Вот что я хочу:

13.90
5.05
7.05
2.50

В основном: я хочу округлять валюту на коммерческой основе.Последний десятичный знак может быть округлен только до 5 или 10 (с добавлением единицы к первой цифре) или округлен до 5 или 0.

Ответы [ 2 ]

9 голосов
/ 27 марта 2012

Общая формула округления до ближайшего x:

round(input / x) * x

И пример для вашего случая использования:

round(5.03 / .05) * .05 = round(100.6) * .05 = 101 * .05 = 5.05
5 голосов
/ 27 марта 2012
<?php

$int = 5.03;
$int *= 20;
$int = ceil($int);
$int /= 20;

echo $int;

Вам просто нужно определить разрешение округления, умножив число (а затем разделив его снова). Это простая математическая задача.

...