
【场景】二开案例.python脚本.最佳实践之小数处理
【结论】
不要再脚本中直接定义小数,避免因python隐式转换导致的转换为float,而导致的精度丢失
【原因】python脚本语言,没有decimal类型,自动根据传入值的可能做隐式转换
【结论1】系统中的小数值,使用的是decimal处理; 直接定义小数,使用的是float 类型
<0>系统中的小数值


<1>直接定义整数,使用的是int(脚本语言推导转型)

<2>直接定义小数,使用的是float (脚本语言推导转型)

【结论2】在进行算术运算时,在没有float参与的情况下,最终依然计算为deciaml,准确计算;
当有float参与计算时,计算精度丢失
<0>系统小数值直接计算,结果正常

<1>使用定义整数参与计算,结果正常 (decimal + int = decimal)

<2>使用定义小数参与计算,计算精度丢失,结果异常 (decimal + float = float)


【变通方案】在表达式中传入定义小数时,使用以下脚本处理,转为decimal
使用任一一个系统的小数字段,将传入的定义小数作为文本传入



【后续方案】平台增加自定义函数,将定义小数强制使用decimal处理