У меня есть значение, которое я хочу отобразить в определенном формате.
Я хочу, чтобы цена была либо 895,25 (если есть десятичное значение), либо 895, — если нет десятичного значения (00).
Вот мой код:
money_format('%!n', '895,00')
Вышеуказанные выводы:
895,00
Я попробовал следующее, но без удачи, он просто удаляет значение.
money_format('%!.0n', '895.25');
Превращается в это:
895
Есть идеи?
Вы можете сделать точность адаптивной как:
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,-
Других решений пока нет …