我在使用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 *//
如何解决此问题?
此致
谢
答案 0 :(得分:8)
将数字保留为数字。在输出阶段之前不要格式化。
答案 1 :(得分:5)
永远不要对要进行计算的数字执行number_format
。
101,25
不是PHP中的有效数字。
使用原始值直到输出数字。 然后,执行number_format()
。
答案 2 :(得分:2)
使用:
$new_price = number_format($price * 0.75 * $count_products,2,',','');
因为$price_sale
是string
,并且在类型转换后可能不会计算您正在计算的值。 (见:http://php.net/manual/de/language.types.type-juggling.php)