You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在WSO2 Integration Studio中将Double转换为Integer的方法

在WSO2 Integration Studio中将XPath算术结果转为Integer并保存到属性

你可以通过以下两种方式实现将double类型的运算结果转为Integer并保存到属性:

方法一:直接在XPath表达式中转换

利用XPath的int()函数直接对运算结果进行强制类型转换,会截断小数部分取整。如果需要四舍五入,可配合round()函数使用。

截断取整示例:

<property name="RESULT_QTY" expression="int(($body/*[local-name()='Shipment']/*[local-name()='qty1'])-($body/*[local-name()='Shipment']/*[local-name()='qty2']))"/>

四舍五入取整示例:

<property name="RESULT_QTY" expression="int(round(($body/*[local-name()='Shipment']/*[local-name()='qty1'])-($body/*[local-name()='Shipment']/*[local-name()='qty2'])))"/>

方法二:使用Script Mediator处理复杂转换逻辑

如果需要自定义取整规则(比如向上/向下取整),可以用Script Mediator结合脚本语言实现:

JavaScript示例(支持自定义取整):

<script language="js"><![CDATA[
    // 从payload中获取double类型的qty1和qty2
    var qty1 = parseFloat(mc.getPayloadXML().*::Shipment.*::qty1);
    var qty2 = parseFloat(mc.getPayloadXML().*::Shipment.*::qty2);
    // 计算差值
    var diff = qty1 - qty2;
    // 选择取整方式:parseInt截断、Math.round四舍五入、Math.floor向下取整、Math.ceil向上取整
    var intResult = parseInt(diff);
    // 将结果设置到属性中
    mc.setProperty("RESULT_QTY", intResult);
]]></script>

内容的提问来源于stack exchange,提问作者Ruby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 10:48:22