числовой формат в числовом формате не работает - PullRequest
1 голос
/ 18 мая 2011

У меня проблемы с крошечным кодом в 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 *//

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

С уважением,

Frank

Ответы [ 3 ]

8 голосов
/ 18 мая 2011

Хранить числа как числа. Не форматировать до выходного каскада.

5 голосов
/ 18 мая 2011

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

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

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

2 голосов
/ 18 мая 2011

использование:

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

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

...