Форматирование чисел (Деньги) в PHP - PullRequest
0 голосов
/ 19 января 2020

Я пытаюсь отформатировать числа без десятичных точек или запятых, я пробовал number_format () и money_format () и, похоже, не могу получить нужный мне результат.


число_формат ($ элемент-> сумма, 2)

Результат: 14 995,00


money_format ("% i", $ элемент-> сумма)

Результат: 14,995,00


Я хочу получить следующие цифры в правильном формате.

14995 должен быть £ 149,95

6795 должно быть £ 67,95

Каков наилучший способ получить результат выше?

Ответы [ 2 ]

1 голос
/ 19 января 2020

Использование кирпич / деньги (отказ от ответственности: я автор):

use Brick\Money\Money;

// Instantiating from a decimal amount

$money = Money::of('67.95', 'GBP');
echo $money->formatTo('en_GB'); // £67.95

// Instantiating from a minor amount (cents)

$money = Money::ofMinor(6795, 'GBP');
echo $money->formatTo('en_GB'); // £67.95
0 голосов
/ 19 января 2020
setlocale(LC_MONETARY, 'en_GB.UTF-8'); // change if needed
echo money_format('%n', 6795 / 100);

возвращает

£ 67,95

для меня, так что должно работать. Как я упоминал в своем комментарии, вы, вероятно, не можете получить код, отображающий 14995 как 1499.50 (деление на 10) и 6795 как 67.95 (деление на 100), поэтому я бы рекомендовал соответствующим образом рефакторинг кода.

...