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

Python如何将长度划分为近似等分段并四舍五入到1/32英寸且保持总长度不变

橱柜分段计算实现方案

核心逻辑

  • 为了同时满足精度要求和总长度无偏差,我们统一以1/32英寸为最小计数单位做整数运算,完全避免浮点误差
  • 先将总可用长度转换为最小单位的整数值,拆分后只需要把余数部分均匀分摊到少数分段上,每个分段最多仅比平均长度差1/32英寸,完全符合橱柜安装公差要求

完整可运行代码

import math

# 输入总长度
run_length = float(input("输入橱柜总长度(单位:英寸):"))
# 输入缝隙数量
reveal_num = int(input("输入拼接缝隙的数量:"))
reveal_length = reveal_num * 0.125
true_length = run_length - reveal_length
# 输入分段数量
section_num = int(input("输入需要拆分的柜体/门板数量:"))

# 转换为以1/32英寸为单位的整数,避免浮点计算误差
total_units = round(true_length * 32)
# 计算每段基础单位数和需要多分配1个单位的段数
base_unit = total_units // section_num
extra_num = total_units % section_num

# 生成分段长度列表
sections = []
# extra_num个段多1个单位,其余用基础长度
for _ in range(extra_num):
    sections.append((base_unit + 1) / 32)
for _ in range(section_num - extra_num):
    sections.append(base_unit / 32)

# 输出结果
print(f"总可用长度:{true_length} 英寸,拆分结果如下:")
for idx, length in enumerate(sections, 1):
    print(f"第{idx}段长度:{length} 英寸")
print(f"所有分段总长度:{sum(sections)} 英寸,与总可用长度完全一致")

代码说明

  1. 所有输入的数量类参数(缝隙数、分段数)都改为int类型,避免非法输入小数的问题
  2. 不再需要单独判断是否可以整除的分支,这套逻辑对所有场景都适用:
    • 如果可以完全均分,extra_num会是0,所有分段长度完全一致
    • 如果不能均分,仅extra_num个段比平均长度多1/32英寸,其余完全一致,总长度不会有任何偏差
  3. 所有分段的长度都是1/32英寸的整数倍,完全满足英制精度要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 07:39:01