请求含.00类小数时响应未显示小数的问题排查
DataWeave数值格式化保留小数位问题
问题场景
输入JSON数据:
[ { "PriorityName": "Medium", "RangeHigh": 52000.0000, "RangeLow": 50000.0000 } ]
期望输出:
[ { "range": "$52000.0000 - 50000.0000" } ]
使用以下DataWeave代码处理时,数值的小数部分会丢失:
payload map { range: ("\$" ++ $.RangeHigh as String) ++ " - " ++ ($.RangeLow as String) }
解决方案
默认的as String转换会自动省略数值末尾的零和小数点,需要使用格式化函数强制保留指定小数位数。
修改后的代码
payload map { range: "$" ++ format('%.4f', $.RangeHigh) ++ " - " ++ format('%.4f', $.RangeLow) }
或者更简洁的字符串插值写法:
payload map { range: "$(format('%.4f', $.RangeHigh)) - $(format('%.4f', $.RangeLow))" }
说明
format('%.4f', 数值)函数会将数值格式化为固定4位小数的字符串,无论末尾是否为零,这样就能完整保留输入中的52000.0000和50000.0000格式。如果需要调整小数位数,只需修改%.4f中的数字即可(比如%.2f保留2位小数)。
内容的提问来源于stack exchange,提问作者ankenapally revathi
相关产品推荐
相关产品推荐

