валюта — PHP money_format: удаление десятичных знаков в зависимости от значения

У меня есть значение, которое я хочу отобразить в определенном формате.

Я хочу, чтобы цена была либо 895,25 (если есть десятичное значение), либо 895, — если нет десятичного значения (00).

Вот мой код:

money_format('%!n', '895,00')

Вышеуказанные выводы:

895,00

Я попробовал следующее, но без удачи, он просто удаляет значение.

money_format('%!.0n', '895.25');

Превращается в это:

895

Есть идеи?

1

Решение

Вы можете сделать точность адаптивной как:

function mfmt($val){
$prec = 2;
$suffix = "";
if(round($val, 0) == $val){
$prec = 0;
$suffix = ",-";
}
return money_format("%!.${prec}n${suffix}", $val);
}

echo mfmt(825.25)."\n"; //825.25
echo mfmt(825)."\n"; //825,-
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]