价格在 WordPress 中使用 twig/timber 显示不正确

Price is not displaying properly with twig/timber in WordPress

我的价格无法在 WordPress 中使用 twig/timber 正确显示,因此我必须将变量设置为:

{% set salestax = toolprice * (taxrate | number_format / 100) %}{% set tooltotal = toolprice * (1 + taxrate | number_format / 100) %}

我的所有输出都正常,但它只会显示为 1575.5 而不是 1575.50

Twig 的 number_format 是 PHP 的 number_format 的包装器。这意味着您可以传递 3 个额外的参数:decimals、'decimal_separator'、thousands_separator

{{ price | number_format(2) }} {# out : 100.50 #}

如果你不想每次都通过decimals你可以通过执行以下操作覆盖过滤器的默认参数:

<?php
    $twig = new \Twig\Environment($loader);
    $twig->getExtension(\Twig\Extension\CoreExtension::class)->setNumberFormat(3, '.', ',');

额外注意:你不应该格式化数字来进行计算,只在最终输出上应用过滤器,这样可以防止舍入错误。

{% set salestax = toolprice * taxrate  100 %}
{{ salestax | number_format(2) }}

{% set tooltotal = toolprice * (1 + taxrate) / 100 %}
{{ tooltotal|number_format(2) }}