Mule ESB,在JSON数组中添加数字时出现问题
我在数据库连接节点中使用以下动态查询(即使我可以使用准备好的stmt):Mule ESB,在JSON数组中添加数字时出现问题,json,expression,mule,esb,Json,Expression,Mule,Esb,我在数据库连接节点中使用以下动态查询(即使我可以使用准备好的stmt): SELECT BALANCE FROM xxx.TAB #[message.payload] 我在SetPayload命令中有以下表达式,该命令在Datbase连接节点之后立即运行: SELECT BALANCE FROM xxx.TAB #[message.payload] 我从curl得到了如下的反应: [{"BALANCE":111.11},{"BALANCE":222.12},{"BALANCE":444.
SELECT BALANCE FROM xxx.TAB
#[message.payload]
我在SetPayload命令中有以下表达式,该命令在Datbase连接节点之后立即运行:
SELECT BALANCE FROM xxx.TAB
#[message.payload]
我从curl得到了如下的反应:
[{"BALANCE":111.11},{"BALANCE":222.12},{"BALANCE":444.30}]
因此,我修改了流程,在数据库连接节点和SetPayload节点之间放置了一个表达式节点,并使用以下表达式:
sum = 0;
foreach (row : message.payload) {
sum += row['BALANCE'];
}
message.payload = sum;
我再次运行curl,但这次我得到以下结果:
777.5299999999999994315658113919199
事实上,答案应该是777.53
这些数据怎么了
有办法解决这个问题吗
谢谢这是因为该值是浮点值或双精度值。看看下面的例子: 有点乱,但有点像:
sum = 0;
foreach (row : message.payload) {
sum += row['BALANCE'];
}
message.payload = new java.text.DecimalFormat("#.##").format(sum);