PHP расширенное форматирование валюты - PullRequest
0 голосов
/ 19 февраля 2011

Мне было интересно, есть ли в PHP простой метод правильного форматирования валюты для следующих задач:

Если значение равно: 4.37, тогда вывод будет $4.37

Если значение равно: 4.00, то на выходе будет $4

Если значение: 4.3 или 4.30, то на выходе будет $4.30

Если значение равно 0.37, то результат будет 37¢

Я уверен, что это довольно сложно сделать (я новичок в PHP), но если у кого-то есть какие-либо предложения, это будет с благодарностью.

Ответы [ 2 ]

1 голос
/ 19 февраля 2011
function format_currency($val) {
    if ($val < 1) return intval(round($val * 100)) . '¢';
    if (fmod($val, 1.0) == 0) return '$' . intval($val);
    return '$' . intval($val) . '.' . intval(round((fmod($val,1))*100));
}

// Call it like this
$val = 1.2;
echo 'Your total: ' . format_currency($val);

Хотя эта функция будет работать, обычно плохая идея кодировать суммы в долларах с плавающей запятой .

0 голосов
/ 19 февраля 2011

Я знаю, что это может быть немного излишним, но взгляните на Zend_Currency, он позаботится о различных типах валюты для этого, он также прост в использовании. Обратите внимание, что вам не нужно использовать весь фреймворк, только класс валюты и требуемый файл

http://framework.zend.com/manual/en/zend.currency.html

...