#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 должен наконец выводиться.