Десятичное значение цены в случае необходимости

Это скорее эстетическая проблема, если я буду выводить две цены в PHP:

(первая из них 123.45, а вторая - 123.00)

есть ли способ удалить .00 из второй цены при необходимости (покажите, что она отображается только как = 123), но оставайтесь там, если для цены есть цифры больше 0 (например, первая цена?).

Любая помощь будет отличной, спасибо!

Тс

Ответ 1

как насчет...

$value = preg_replace('~\.0+$~','',$value);

Ответ 2

Если вы не хотите использовать (медленные) регулярные выражения, вы можете использовать str_replace:

$value = str_replace('.00', '', $value);

note: Я предполагаю, что вы не хотите менять "123.10" на "123.1", вам нужно только удалить двойные нули, не так ли?

Ответ 3

function round2($decimal,$places = 2){
  $decimal = round($decimal,$places);
  if (floor($decimal)==$decimal)
    return (string)floor($decimal);
  return $decimal;
}
echo round2(123.45)."<br />".round2(123.00);

Что-то вроде этого?