Есть ли функция PHP для форматирования суммы валюты в бухгалтерском формате? - PullRequest
2 голосов
/ 26 октября 2009

В настоящее время я пишу отчет на PHP, который иногда должен отображать отрицательные суммы в валюте. Указанные суммы в валюте хранятся в базе данных как "-44.00". В идеале это число должно быть выведено в отчете как "($ 44,00)".

Я знаю, что могу написать некоторую сложную функцию, чтобы определить, является ли число отрицательным, и вручную вставить скобки, но мне было интересно, есть ли какая-нибудь удобная функция PHP, которая может сделать это для меня, прежде чем я заново изобрету колесо , Я искал вокруг и не нашел ничего, что, кажется, делает эту точную задачу. Я знаю о money_format, но я не вижу способа выполнить отрицательную / круглую часть. Имейте в виду, что код должен работать независимо от того, является ли число отрицательным или положительным.

Ответы [ 3 ]

7 голосов
/ 26 октября 2009

http://www.php.net/manual/en/function.money-format.php

echo money_format('%(n', '-44.00');
1 голос
/ 26 октября 2009
function format_currency($amount) {
    if($amount < 0)
        return "($".$amount.")";

    else return "$".$amount;
}
0 голосов
/ 28 октября 2009

Хмм вроде ... но это все равно выдает знак минус, когда он отрицательный. Я бы изменил эту функцию на что-то вроде:

function accting_format($amount) {
    if ($amount < 0) return '($' . abs($amount) . ')';
    return '$' . $amount;
}

Обратите внимание, что значение abs () равно количеству скобок, которые уже были выведены.

...