在线提交需求

请留下您的联系方式,我们的专家将在 24 小时内与您沟通。

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

极奇策技术团队更新于 2026-08-260 阅读

image.png

截断保留小数

📖 节点概述

双输入数学节点,将输入的数值直接截断保留指定小数位数(不进行四舍五入)。例如 3.14159 保留 2 位小数变为 3.14-2.999 保留 1 位小数变为 -2.9。该节点为纯数据节点,无执行端口,通过数据连线被动输出运算结果。实际返回类型根据结果自动适配:若小数位数为 0 或结果为整数则返回 INT,否则返回 FLOAT

💡 使用场景

  • 金融截断计息:在银行利息计算中,直接舍弃多余分位(而非四舍五入),符合部分金融规则。
  • 数据展示精简:保留固定小数位数显示,避免四舍五入造成的数据偏差(如传感器原始数据)。
  • 浮点精度控制:在多次浮点运算链中主动截断,防止精度误差无限累积。
  • 向下取整替代:将小数位数设为 0,可获得类似 int() 的截断效果(正负数均向零取整)。
  • 固定格式输出:需要输出特定小数位数的数值(如商品价格显示两位小数,多余部分直接舍弃)。

🎮 实战连线指南:如何正确使用它?

节点有两个输入端口 原数值小数位数,以及一个只读输出端口 结果。通过控件或连线提供数值和小数位数,节点会自动计算截断后的结果。

场景案例:商品价格截断处理(去掉多余分位)

  1. 获取原始价格:从【变量获取】节点读取 raw_price(例如 123.4567 元)。
  2. 设置小数位数:使用【整数】常量节点输入 2,表示保留两位小数。
  3. 连接节点
    • raw_price 连入【截断保留小数】的 原数值
    • 将常量 2 连入 小数位数
  4. 获取结果结果 输出为 123.45(直接截断,不四舍五入)。
  5. 后续使用:将结果用于订单金额计算或展示。

💡 对比四舍五入节点:若需要四舍五入,请使用【数学运算】中的 round() 或专门的【四舍五入】节点。


⚙️ 引脚与参数说明

📥 输入引脚

引脚名称数据类型说明
原数值FLOAT / INT需要截断的数值。可通过控件填写默认值或连线动态传入。
小数位数INT要保留的小数位数(非负整数)。例如2 表示保留两位小数。可通过控件或连线提供。

小数位数会自动取整并限制为 >= 0,传入负数或非数字时默认为 2

📤 输出引脚

引脚名称数据类型说明
结果FLOAT / INT截断后的数值。若小数位数为0 或结果为整数,返回 INT 类型;否则返回 FLOAT 类型。引脚为只读。

🔧 内部算法说明

节点通过以下步骤完成截断:

  1. 原数值 转换为浮点数(转换失败则默认为 0.0)。
  2. 小数位数 转换为整数并确保 >= 0(转换失败则默认为 2)。
  3. 计算缩放因子 factor = 10 ^ decimals
  4. 执行截断:truncated = int(value * factor) / factor
  5. 根据结果是否为整数决定返回 INTFLOAT

例如:value = 3.14159, decimals = 2factor = 100int(314.159) = 314314 / 100 = 3.14(浮点数)。


⚠️ 注意事项

  • 不进行四舍五入:该节点仅截断,即使小数部分大于等于 0.5 也会被直接舍弃(如 3.999 保留 2 位 → 3.99)。
  • 负数处理:向零方向截断(-3.14-3.14,但注意浮点精度可能产生 -3.1400000000000006,实际存储为近似值)。
  • 浮点精度:由于浮点数二进制表示限制,截断后可能产生微小误差(如 0.29 可能变为 0.2899999999999999)。若需精确十进制运算,请考虑【高精度小数】节点。
  • 小数位数过大:当 小数位数 过大(如 >15)时,可能因浮点精度问题导致截断结果不准确。建议小数位数不超过 12 位。

💎 小贴士

  • 若需要真正的向下取整(向负无穷方向),请使用【向下取整】节点。
  • 结合【格式化字符串】节点,可以将截断后的数值转换为固定小数位数的字符串(补零)。
  • 在循环中进行累积运算时,定期使用本节点可有效防止浮点误差累积。
助理
咨询
微信
微信客服扫码添加微信
社群
QQ群扫码加入Q群
电话
免费咨询热线0371-67993886
顶部