我试图在液体脚本中显示浮点值作为金钱。它似乎只允许你对数字执行此操作,但是我无法将字符串转换为数字(尽管如下关于SO的建议:)
{% assign teststring = '202.2400' %}
{% assign testnumeric = 202.2400 %}
teststring: {{ teststring }} <br/>
testnumeric: {{ testnumeric }} <br/>
teststring as money: {{ teststring |money: "GBP" }} <br/>
testnumeric as money: {{ testnumeric |money: "GBP" }} <br/>
{% assign testStringAsNumeric = teststring | plus: 45 %}
test convert teststring to numeric: {{ testStringAsNumeric }} <br/>
test show above as money: {{ testStringAsNumeric |money: "GBP" }}
输出结果为:
teststring: 202.2400
testnumeric: 202.24
teststring as money: 202.2400
testnumeric as money: £202.24
test convert teststring to numeric: 202.24000
test show above as money: 202.24000
我想要的是将字符串值(teststring)显示为金钱。所以我需要转换为数字,然后显示为金钱。
我也尝试过时间过滤器,例如
{% assign testStringAsNumeric = teststring | times: 1 %}
上面的测试显示为金钱:{{testStringAsNumeric | money:&#34; GBP&#34; }}
但这会返回错误:
test show above as money: System.Linq.Enumerable+d__112`1[System.String]
感谢您的帮助
答案 0 :(得分:1)
因此,我想解决这个问题。
首先,使用货币过滤器时,数字会被解释为cents
,例如
Input: {{ 2000 | money }}
Output: $20.00
因此,如果格式正确,下面的行会显示$2.47
。
test show above as money: {{ testStringAsNumeric |money: "GBP" }}
第二,设置money
过滤器将使用哪种货币的方式在Shopify管理员内部,而不是作为参数在液体滴内。因此,一旦您在Shopify的管理员中设置了您的货币,您所要写的就是:
test show above as money: {{ testStringAsNumeric | money }}
第三次,使用money
过滤器,只会保留两个尾随零。
Input: {{ 2040.002020203 | money }}
Ouput: {{ $20.40 }}
答案 1 :(得分:1)
这是我从测试商店的液体代码输出的结果:
teststring: 202.2400
testnumeric: 202.24
teststring as money: Liquid error: wrong number of arguments (2 for 1)
testnumeric as money: Liquid error: wrong number of arguments (2 for 1)
test convert teststring to numeric: 247.24
test show above as money: Liquid error: wrong number of arguments (2 for 1)
将| money: "GBP"
过滤器更改为| money
(Shopify通常如何使用过滤器)会产生:
teststring: 202.2400
testnumeric: 202.24
teststring as money: $2.02 !!
testnumeric as money: $2.02 !!
test convert teststring to numeric: 247.24
test show above as money: $2.47 !!
......似乎按预期工作。 (是的,我的开发商店的shop.money_format目前是${{ amount }} !!
。在某些时候让我很开心。)
您是否尝试在应用环境中使用这些流畅的声明?如果是这样,该应用程序对流体代码的解释可能存在问题 - 但正如您所看到的,从纯粹的Shopify角度来看,您的代码应该完全按预期工作(无论是否将字符串转换为数字)I建议联系您的应用供应商,抱怨事情不按预期方式运作。
答案 2 :(得分:0)
如果您只有正数,则可以使用abs
filter将字符串转换为数字。这应该是这样的工作:
{% assign teststring = '202.2400' %}
teststring as money: {{ teststring | abs | money: "GBP" }}
当然,只有在数字已经为正数时才能正常工作。
答案 3 :(得分:0)
根据this你应该可以做到:
{% assign teststring = '202.2400' %}
{% assign testnum = teststring | times: 100 %}
teststring as money {{ testnum | money }}