qingsun 发表于 2020-5-13 15:27:40

有什么办法使得 int() 按照“四舍五入”的方式取整?

我们人类思维是习惯于“四舍五入”法,你有什么办法使得 int() 按照“四舍五入”的方式取整吗?

int() 固然没那么“聪明”,但机器是死的,鱼油是活的!
5.4 “四舍五入”结果为:5,int(5.4+0.5) == 5
5.6 “四舍五入”结果为:6,int(5.6+0.5) == 6
大家看明白了吗?


请问这个怎么理解?

qiuyouzhi 发表于 2020-5-13 15:29:02

大兄弟,这是小学数学啊

wp231957 发表于 2020-5-13 15:29:54

太容易了,+0.5 以后会准确的落在四舍五入的范畴内
自己心里加一下就ok

补充,自己可以测试一下   int 到底是如何取整的 ,应该是去尾法

永恒的蓝色梦想 发表于 2020-5-13 15:33:59

领鱼币{:10_256:}

xiaosi4081 发表于 2020-5-13 15:35:00

领鱼币x2{:10_256:}

Twilight6 发表于 2020-5-13 15:39:13


领鱼币x3{:10_256:}

Twilight6 发表于 2020-5-13 15:41:37

因为int()转为整数是向下取整的

单独5.8 向下取整 = 5
单独5.6 也是 = 5

你5.8+0.5=6.3 了   用int()取整等于 6
同理5.6+0.5=6.1   int()后= 6

sunrise085 发表于 2020-5-13 15:42:25

int()就是直接取整,把小数去掉。
若是 int(num+0.5),就可以直接让num若在四舍和五入的范畴之内,若num的小数部分小于0.5,那么再加0.5,也不会进位,使用int就把小数部分去掉了;若num小数部分不小于0.5,那么再加0.5就会进位,使用int的结果就相当于进位了。
很难理解么?不知道你是哪一点不理解

Mrzhou1201 发表于 2020-5-13 15:42:39

2楼的大兄弟笑死我了

qingsun 发表于 2020-5-13 15:51:45

sunrise085 发表于 2020-5-13 15:42
int()就是直接取整,把小数去掉。
若是 int(num+0.5),就可以直接让num若在四舍和五入的范畴之内,若num的 ...

实际上,int(5.6) != int(5.6+0.5)
那为什么int(5.6+0.5) == 6,就认为int(5.6) == 6呢?

qingsun 发表于 2020-5-13 15:52:50

sunrise085 发表于 2020-5-13 15:42
int()就是直接取整,把小数去掉。
若是 int(num+0.5),就可以直接让num若在四舍和五入的范畴之内,若num的 ...

实际上,int(5.6) != int(5.6+0.5)
那为什么int(5.6+0.5) == 6,就认为int(5.6) == 6呢?

我是没明白这个逻辑。

wp231957 发表于 2020-5-13 15:59:52

qingsun 发表于 2020-5-13 15:52
实际上,int(5.6) != int(5.6+0.5)
那为什么int(5.6+0.5) == 6,就认为int(5.6) == 6呢?



先去研究int()这个函数是干啥的吧
int(5.0---5.9) 都是等于5 的   
而加0.5以后
5.5---6.4再int()之后,就变成了5 5 5 5 5 6 6 6 6 6
这就变相的实现了四舍五入

sunrise085 发表于 2020-5-13 16:00:03

本帖最后由 sunrise085 于 2020-5-13 16:02 编辑

qingsun 发表于 2020-5-13 15:52
实际上,int(5.6) != int(5.6+0.5)
那为什么int(5.6+0.5) == 6,就认为int(5.6) == 6呢?



谁说int(5.6) == 6呢?
这里是说使用int()对一个数num完成四舍五入,int(num+0.5)就是用int()对num进行四舍五入。
int(5.6+0.5) == 6,也没有认为int(5.6) == 6啊。只是说5.6四舍五入结果为6而已
用int()完成四舍五入,就像这样
def fun(num):
    return int(num+0.5)
这样调用这个函数的时候就是进行四舍五入啊
fun(5.6)结果就是6,fun(5.3)结果就是5

heidern0612 发表于 2020-5-13 16:00:53

本帖最后由 heidern0612 于 2020-5-13 16:02 编辑

四舍五入、四舍五入,意思不就是四(包含及以下)舍去,五(包含及以上)的话就进数的意思么?

以当前数+0.5位基准,不足后一个数,按本数算;超过后一个数,按后一个数算。

_2_ 发表于 2020-5-13 16:39:56

qiuyouzhi 发表于 2020-5-13 15:29
大兄弟,这是小学数学啊

我们的题型是:
设 为不不超过 x 的最大整数
例如, = 3, [-1.2] = -2{:10_256:}
初中就上了一个档次,虽然还不算很难

Helpme 发表于 2020-8-12 18:14:22

哈哈哈,鱼币哦~

湘粤苏仙 发表于 2021-10-2 21:51:48

好家伙,直接num+0.5,学到了

鱼粉子 发表于 2021-11-3 17:27:51

我来贴贴

wwjj. 发表于 2022-3-26 22:52:31

看见这么多混鱼币的,我也来

独酌dz 发表于 2022-11-5 14:13:50

回帖能加鱼币?
页: [1] 2
查看完整版本: 有什么办法使得 int() 按照“四舍五入”的方式取整?