28
写 {% assign total = price + tax %} 得到的是字符串拼接结果,{{ a + b }} 有时变成 12 而不是 3。
写 {% assign total = price + tax %} 得到的是字符串拼接结果,{{ a + b }} 有时变成 12 而不是 3。
先把判断放在前面:Liquid 的 + 遇到字符串会按字符串处理,数字需要显式转成数值类型,浮点还要注意精度。
| plus: 0 强制转数值:{% assign n = a | plus: 0 %}。money 过滤器。| append:,不要用 + 期望自动拼接。round: 2 后再比,避免 0.1 + 0.2 这类精度问题。{% liquid %} 写多行,可读性和正确率都更高。再补一个:{% assign x = 5 %}{% assign y = '5' %} 之后 x == y 在 Liquid 里是成立的(会做类型转换),所以用 == 判断数字时要格外小心,必要时用 | plus: 0 后比较。
写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。