在DataWeave 2.0中,有没有一种方法可以修剪数字中不必要的零



我有个问题。我可以使用DataWeave表达式修剪这样的数字:42323000000042323吗?

我试过一些东西,但都不起作用。

我从来没有听说过数字右边的零是不必要的。它们在数学上很重要,所以我猜你有非常特殊的要求。

在任何情况下,如果你绝对必须这样做,你可以使用这个功能:

%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

正如其他人所提到的,如果确实需要,您可以执行以下操作:

  1. 将数字视为字符串
  2. 将其反转并转换回数字(使0不重要(
  3. 将生成的数字视为字符串,然后再次反转
  4. 将最后一个字符串转换为数字(如果您需要它作为数字(

请参阅下面的示例代码:

%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

最新更新