我在Dataweave中通过xml获得了以下号码。
<b:AmountValue>180.90</b:AmountValue>
使用Dataweave我试图输出一个带有两个小数位的相应json数字(代表货币)。
这是我的Dataweave表达式的样子......
amount: $.AmountValue as :number as :string {format: ".00"} as :number
输出json正在失去尾随零。
i.e. "amount":180.9
如何将我的Dataweave表达式更改为始终具有两个小数位?
或者我可能误解了json数字类型?
感谢
答案 0 :(得分:1)
如果您可以将金额作为字符串
,那么远程使用as :number
amount: $.AmountValue as :number as :string {format: ".00"}
答案 1 :(得分:0)
如果仅放置amount: $.AmountValue as :number
我在任意点工作室的预览中试过这个,并且没有看到丢失尾随0.我也在使用最新版本。
答案 2 :(得分:0)
我也测试了这个并且它有效。
如果您尝试这样做:
8.2 as :string {format: "0.00"} as :number
然后添加额外的小数位。
如果输出到application / json或application / XML,您将看到打印出8.20
的两个小数位。如果你输出到application / java,那么它是一个double,你将不得不决定如何打印出double。
如果您尝试8.2 as :number
,则会打印出8.2
。
答案 3 :(得分:0)
如前所述,从:string到:number的强制转换将使结尾的0掉线。Dataweave支持使用八倍速定法规定的:number格式。
下面的代码片段将产生所需的两位小数。
amount: $.AmountValue as :number { format: "#.##"}