鹤壁市纤凝网

电子秤的单位换算逻辑:克、千克、磅等计量方式的算法实现

2025-07-20 13:13:01 浏览次数:1
详细信息

电子秤单位换算逻辑实现

下面是一个完整的电子秤单位换算实现,支持克(g)、千克(kg)和磅(lb)之间的相互转换。

class WeightConverter: # 定义单位转换常量 GRAMS_PER_KILOGRAM = 1000.0 GRAMS_PER_POUND = 453.59237 # 精确转换系数 @staticmethod def convert(value, from_unit, to_unit): """ 执行重量单位转换 参数: value -- 要转换的数值 from_unit -- 原始单位 ('g', 'kg', 'lb') to_unit -- 目标单位 ('g', 'kg', 'lb') 返回: 转换后的数值 """ # 统一单位格式为小写 from_unit = from_unit.lower() to_unit = to_unit.lower() # 定义支持的重量单位 valid_units = ['g', 'kg', 'lb'] if from_unit not in valid_units or to_unit not in valid_units: raise ValueError(f"无效的单位。支持的格式: {valid_units}") # 如果源单位和目标单位相同,直接返回值 if from_unit == to_unit: return value # 转换为克作为中间单位 if from_unit == 'g': grams = value elif from_unit == 'kg': grams = value * WeightConverter.GRAMS_PER_KILOGRAM elif from_unit == 'lb': grams = value * WeightConverter.GRAMS_PER_POUND # 从克转换为目标单位 if to_unit == 'g': return grams elif to_unit == 'kg': return grams / WeightConverter.GRAMS_PER_KILOGRAM elif to_unit == 'lb': return grams / WeightConverter.GRAMS_PER_POUND # 测试函数 def test_weight_converter(): # 测试用例 test_cases = [ (1000, 'g', 'kg', 1.0), (1, 'kg', 'g', 1000.0), (1, 'kg', 'lb', 2.20462), (1, 'lb', 'g', 453.59237), (500, 'g', 'lb', 1.10231), (2.20462, 'lb', 'kg', 1.0), (1000, 'g', 'g', 1000.0), ] print("测试结果:") print("{:<10} {:<5} -> {:<5} | {:<10} | {:<10} | {:<10}".format( "数值", "从", "到", "预期", "实际", "状态")) for value, from_unit, to_unit, expected in test_cases: try: result = WeightConverter.convert(value, from_unit, to_unit) # 四舍五入到5位小数进行比较 passed = abs(round(result, 5) - round(expected, 5)) < 0.00001 status = "通过" if passed else "失败" print("{:<10.5f} {:<5} -> {:<5} | {:<10.5f} | {:<10.5f} | {:<10}".format( value, from_unit, to_unit, expected, result, status)) except Exception as e: print(f"测试失败: {e}") # 用户交互示例 if __name__ == "__main__": print("电子秤单位换算器") print("支持单位: g(克), kg(千克), lb(磅)") while True: try: value = float(input("\n输入重量值: ")) from_unit = input("输入原始单位 (g/kg/lb): ").strip().lower() to_unit = input("输入目标单位 (g/kg/lb): ").strip().lower() result = WeightConverter.convert(value, from_unit, to_unit) print(f"\n转换结果: {value} {from_unit} = {result:.6f} {to_unit}") except ValueError as ve: print(f"输入错误: {ve}") except Exception as e: print(f"发生错误: {e}") # 询问用户是否继续 another = input("\n是否继续转换? (y/n): ").lower() if another != 'y': print("感谢使用电子秤单位换算器!") break 单位换算逻辑说明

转换关系

转换方法

转换公式

功能特点 支持三种重量单位:克(g)、千克(kg)、磅(lb) 使用国际标准换算系数(1磅 = 453.59237克) 包含自动测试用例验证转换准确性 提供用户友好的交互界面 异常处理机制确保程序健壮性 单位不区分大小写 使用示例 电子秤单位换算器 支持单位: g(克), kg(千克), lb(磅) 输入重量值: 500 输入原始单位 (g/kg/lb): g 输入目标单位 (g/kg/lb): lb 转换结果: 500 g = 1.102311 lb 是否继续转换? (y/n): n 感谢使用电子秤单位换算器!

这个实现考虑了电子秤实际应用中的精度要求,使用了国际标准的换算系数,并通过测试用例验证了转换的准确性。

相关推荐