我有个问题。我可以使用DataWeave表达式修剪这样的数字:423230000000
到42323
吗?
我试过一些东西,但都不起作用。
我从来没有听说过数字右边的零是不必要的。它们在数学上很重要,所以我猜你有非常特殊的要求。
在任何情况下,如果你绝对必须这样做,你可以使用这个功能:
%dw 2.0
output application/json
var value=423230000000
fun removeLastZeros(x: String) =
(if (x[-1] == "0") removeLastZeros(x[0 to -2]) else x) as Number
---
removeLastZeros(value)
输出:42323
正如其他人所提到的,如果确实需要,您可以执行以下操作:
- 将数字视为字符串
- 将其反转并转换回数字(使0不重要(
- 将生成的数字视为字符串,然后再次反转
- 将最后一个字符串转换为数字(如果您需要它作为数字(
请参阅下面的示例代码:
%dw 2.0
output application/json
var payload = 423230000000
---
((payload as String)[-1 to 0] as Number as String)[-1 to 0] as Number
这将导致42323
。