Подтвердить что ты не робот

Печать формата номера валюты в PHP

У меня есть некоторые значения цены для отображения на моей странице.

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

Например, fnPrice(1001.01) должен печатать $ 1,000.01

4b9b3361

Ответ 1

Самый простой ответ: number_format().

echo "$ ".number_format($value, 2);

Если вы хотите, чтобы ваше приложение могло работать с несколькими валютами и стандартизованным форматом (1.000,00 для некоторых из нас, например, для европейцев), оно становится немного сложнее.

Существует money_format(), но он не работает в Windows и полагается на setlocale(), что, на мой взгляд, мусор, потому что он требует установки (произвольно названных) локальных пакетов на стороне сервера.

Если вы хотите серьезно интернационализировать свое приложение, рассмотрите возможность использования полномасштабной библиотеки интернационализации, такой как Zend Framework Zend_Locale и Zend_Currency.

Ответ 2

с расширением intl в PHP 5.3+, вы можете использовать класс NumberFormatter:

$amount = '12345.67';

$formatter = new NumberFormatter('en_GB',  NumberFormatter::CURRENCY);
echo 'UK: ', $formatter->formatCurrency($amount, 'EUR'), PHP_EOL;

$formatter = new NumberFormatter('de_DE',  NumberFormatter::CURRENCY);
echo 'DE: ', $formatter->formatCurrency($amount, 'EUR'), PHP_EOL;

который печатает:

 UK: €12,345.67
 DE: 12.345,67 €

Ответ 3

sprintf() - это функция PHP для всех видов форматирования строк http://php.net/manual/en/function.sprintf.php

Я использую эту функцию:

function formatDollars($dollars){
  return '$ '.sprintf('%0.2f', $dollars);
}

Ответ 4

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

function formatDollars($dollars)
{
    return "$".number_format(sprintf('%0.2f', preg_replace("/[^0-9.]/", "", $dollars)),2);
}

Edit

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

function formatDollars($dollars)
{
    $formatted = "$" . number_format(sprintf('%0.2f', preg_replace("/[^0-9.]/", "", $dollars)), 2);
    return $dollars < 0 ? "({$formatted})" : "{$formatted}";
}

Ответ 5

Для этого PHP имеет функцию money_format. Читайте об этом здесь.

Ответ 6

Вы можете использовать функцию числового формата. Для использования, пожалуйста, смотрите здесь