爱吃肥肉的马 发表于 2021-8-10 20:37:16

比较幼稚的问题

为什么44 // 2.2 =19?

逃兵 发表于 2021-8-10 20:38:11

浮点数精度丢失问题...

爱吃肥肉的马 发表于 2021-8-10 20:41:57

逃兵 发表于 2021-8-10 20:38
浮点数精度丢失问题...

那像这样,怎么才能得到正确的答案啊?

大马强 发表于 2021-8-10 20:43:41

地板除不都是取整的吗?

逃兵 发表于 2021-8-10 20:45:36

使用decimal函数

import decimal
print(44//decimal.Decimal('2.2'))

大马强 发表于 2021-8-10 20:47:21

直接这样
print(44/2.2)

爱吃肥肉的马 发表于 2021-8-10 20:50:55

大马强 发表于 2021-8-10 20:43
地板除不都是取整的吗?

不是啊,你地板除float,得到的还是float啊

wangka 发表于 2021-8-10 20:51:54

本帖最后由 wangka 于 2021-8-10 20:52 编辑

因为//等同于约等于,而/是精确除法(只要不是无限小数)
所以44//2.2=19
改成44/2.2就OK了
求最佳!!!!!
页: [1]
查看完整版本: 比较幼稚的问题