2009-10-26 3 views
2

В настоящее время я пишу отчет на PHP, который иногда должен отображать отрицательные суммы в валюте. Указанные суммы в валюте хранятся в базе данных типа «-44,00». В идеале это число будет выводиться как «(44,00 долл. США)» в отчете.Есть ли функция PHP для форматирования суммы валюты в формате учета?

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

ответ

7

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

echo money_format('%(n', '-44.00'); 
+0

При попытке это не добавляет знак доллара. Я прочитал документацию для money_format и до сих пор не вижу способ добавить знак доллара. – DWilliams

+0

Для пояснения, если я назову «money_format ('% (n', $ row ['paymentamount'])", когда paymentamount равно 100, он возвращает (100.00) – DWilliams

+0

@DWilliams, вы можете написать собственный print_money_format ($ amount) PHP - это международный язык и поддерживает многие валюты, было бы глупо, если бы он напечатал $ по умолчанию, еще глубже потребовал другой аргумент (и нарушил существующие реализации), указав валютный символ :) –

1
function format_currency($amount) { 
    if($amount < 0) 
     return "($".$amount.")"; 

    else return "$".$amount; 
} 
0

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

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

Обратите внимание на абс() вокруг сумма является Скобки уже выводимый.

 Смежные вопросы

  • Нет связанных вопросов^_^