我看到树枝2尝试使用number_format时出现一些奇怪的行为。
我从服务器上为每个项目获得3个值:成本,乘数和数量。由于乘数的原因,当我乘以数量时,我得到的是部分美分,所以我将价格放入这样的变量中:
{% set price = (item.buyPrice * item.markup_mult)|number_format(2) %}
很好,我在下一行使用它,这是正确的。问题是当我尝试在具有第二种格式的另一个变量中使用价格值时:
{% set lineTotal = (price * quantities[item.collection_id][item.item_id])|number_format(2) %}
像这样,我将得到2.00的值,因为我的lineTotal应该为2400。
3注意事项:
我也阅读了
这是一个已知的错误,还是我做错了什么?谢谢
答案 0 :(得分:2)
number_format
输出一个字符串,表示您信任自动类型转换。默认情况下,当您使用number_format
时,它会自动插入一个千位分隔符(在美国为逗号)。这可能会弄乱您的数学,并解释为什么对于价格高于999.99美元的商品来说,这只是一个问题。
您需要使用number_format
而不是使用round()
。
$number = 1000.999
echo number_format($number,2); // 1,001.00
echo round($number,2); // 1001
$number = 1000.99
echo number_format($number,2); // 1,000.99
echo round($number,2); // 1000.99