极奇策RPA技术教程:截断保留小数 (NodeMathTruncate) - 自动化开发与配置详细指南

截断保留小数
📖 节点概述
双输入数学节点,将输入的数值直接截断保留指定小数位数(不进行四舍五入)。例如 3.14159 保留 2 位小数变为 3.14,-2.999 保留 1 位小数变为 -2.9。该节点为纯数据节点,无执行端口,通过数据连线被动输出运算结果。实际返回类型根据结果自动适配:若小数位数为 0 或结果为整数则返回 INT,否则返回 FLOAT。
💡 使用场景:
- 金融截断计息:在银行利息计算中,直接舍弃多余分位(而非四舍五入),符合部分金融规则。
- 数据展示精简:保留固定小数位数显示,避免四舍五入造成的数据偏差(如传感器原始数据)。
- 浮点精度控制:在多次浮点运算链中主动截断,防止精度误差无限累积。
- 向下取整替代:将小数位数设为 0,可获得类似
int()的截断效果(正负数均向零取整)。 - 固定格式输出:需要输出特定小数位数的数值(如商品价格显示两位小数,多余部分直接舍弃)。
🎮 实战连线指南:如何正确使用它?
节点有两个输入端口 原数值 和 小数位数,以及一个只读输出端口 结果。通过控件或连线提供数值和小数位数,节点会自动计算截断后的结果。
场景案例:商品价格截断处理(去掉多余分位)
- 获取原始价格:从【变量获取】节点读取
raw_price(例如123.4567元)。 - 设置小数位数:使用【整数】常量节点输入
2,表示保留两位小数。 - 连接节点:
- 将
raw_price连入【截断保留小数】的原数值。 - 将常量
2连入小数位数。
- 将
- 获取结果:
结果输出为123.45(直接截断,不四舍五入)。 - 后续使用:将结果用于订单金额计算或展示。
💡 对比四舍五入节点:若需要四舍五入,请使用【数学运算】中的 round() 或专门的【四舍五入】节点。
⚙️ 引脚与参数说明
📥 输入引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 原数值 | FLOAT / INT | 需要截断的数值。可通过控件填写默认值或连线动态传入。 |
| 小数位数 | INT | 要保留的小数位数(非负整数)。例如2 表示保留两位小数。可通过控件或连线提供。 |
小数位数会自动取整并限制为
>= 0,传入负数或非数字时默认为2。
📤 输出引脚
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 结果 | FLOAT / INT | 截断后的数值。若小数位数为0 或结果为整数,返回 INT 类型;否则返回 FLOAT 类型。引脚为只读。 |
🔧 内部算法说明
节点通过以下步骤完成截断:
- 将
原数值转换为浮点数(转换失败则默认为0.0)。 - 将
小数位数转换为整数并确保>= 0(转换失败则默认为2)。 - 计算缩放因子
factor = 10 ^ decimals。 - 执行截断:
truncated = int(value * factor) / factor。 - 根据结果是否为整数决定返回
INT或FLOAT。
例如:
value = 3.14159,decimals = 2→factor = 100→int(314.159) = 314→314 / 100 = 3.14(浮点数)。
⚠️ 注意事项
- 不进行四舍五入:该节点仅截断,即使小数部分大于等于 0.5 也会被直接舍弃(如
3.999保留 2 位 →3.99)。 - 负数处理:向零方向截断(
-3.14→-3.14,但注意浮点精度可能产生-3.1400000000000006,实际存储为近似值)。 - 浮点精度:由于浮点数二进制表示限制,截断后可能产生微小误差(如
0.29可能变为0.2899999999999999)。若需精确十进制运算,请考虑【高精度小数】节点。 - 小数位数过大:当
小数位数过大(如 >15)时,可能因浮点精度问题导致截断结果不准确。建议小数位数不超过 12 位。
💎 小贴士:
- 若需要真正的向下取整(向负无穷方向),请使用【向下取整】节点。
- 结合【格式化字符串】节点,可以将截断后的数值转换为固定小数位数的字符串(补零)。
- 在循环中进行累积运算时,定期使用本节点可有效防止浮点误差累积。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

