计算后如何区分float与integer以编写对应条件语句?
解决方法
方案1:优先使用取模判断(无精度问题,推荐)
直接在做除法前判断x + y是否能被z整除,完全避免浮点数转换带来的精度误差问题,兼容性最好,全语言通用。
示例(以Python为例):
x, y, z = 1, 2, 3 # 示例整数变量 sum_xy = x + y # 可提前加if z != 0的判断避免除零错误 if sum_xy % z == 0: a = sum_xy / z # 此处写a为整数时的执行逻辑 else: a = sum_xy / z # 此处写a为非整数浮点数时的执行逻辑
方案2:对已得到的浮点数a判断是否为整数
如果你已经计算得到了浮点数a,可以用对应语言的浮点数整数判断方法,以Python为例:
a = (x + y) / z if a.is_integer(): # a为整数时的执行逻辑 else: # a为非整数时的执行逻辑
该方案存在浮点数精度风险:如果
x+y和z的数值特别大,浮点数精度丢失可能导致判断错误,非必要不推荐使用。
内容的提问来源于stack exchange,提问作者if fhhf
相关产品推荐
相关产品推荐

