自定义Python Decimal类乘法运算异常排查求助
自定义Decimal类乘法运算异常排查求助
问题详情
为解决Python浮点计算误差问题,我自行实现了基于科学计数法存储的Decimal类,单元测试阶段结果正常,但集成到LaserOMS项目的财务统计模块时,出现乘法运算错误:
- 执行
1 × 7.20时返回72,不符合预期的7.20 - 执行
1 × 13.95时结果正确
怀疑范围
问题大概率出在以下三个环节:
- 字符串初始化逻辑
- 加法运算函数
- 乘法运算函数
待排查代码片段
已准备好相关代码及测试数据,核心逻辑示例如下:
class Decimal: def __init__(self, value_str): # 字符串转科学计数法存储的初始化逻辑 self.sign = ... self.coefficient = ... self.exponent = ... def __mul__(self, other): # 乘法运算实现 new_sign = ... new_coefficient = ... new_exponent = ... return Decimal.from_components(new_sign, new_coefficient, new_exponent)
内容的提问来源于stack exchange,提问作者Mapy
相关产品推荐
相关产品推荐

