числовой формат в числовом формате не работает

#php #number-formatting

#php #форматирование чисел

Вопрос:

У меня возникли проблемы с крошечным кодом в php:

 $price = 135;
$price_sale = number_format($price * 0.75,2,',','');
//*returns 101,25 *//
$count_products = 3;
$new_price = number_format($price_sale * $count_products,2,',','');
//* returns 303,00 and not 303,75 *//
  

Как я могу исправить эту проблему?

С уважением,

Фрэнк

Ответ №1:

Сохраняйте числа как числа. Не форматируйте до этапа вывода.

Ответ №2:

Никогда не делайте number_format с числами, с которыми хотите выполнять вычисления.

101,25 недопустимое число в PHP.

Работайте с необработанными значениями, пока не будет выведено число. Затем выполните number_format() .

Ответ №3:

используйте:

 $new_price = number_format($price * 0.75 * $count_products,2,',','');
  

as $price_sale является string и, вероятно, не будет иметь значения, с которым вы вычисляете, после приведения типа. (Смотрите: http://php.net/manual/de/language.types.type-juggling.php )

Комментарии:

1. Хорошо, спасибо! Довольно глупо с моей стороны. Не знал, что number_format должен наконец выводиться.