鱼C论坛

 找回密码
 立即注册
查看: 2029|回复: 8

[已解决]int整型的常见问题

[复制链接]
发表于 2017-4-10 13:08:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int()是按照向下取整的形式做的,,,,
                    人们习惯用‘四舍五入’方式,
                  
                      那么咋么要  int()按照四舍五入的方式取整
                                             


                   5.4取整结果为5,,,int(5.4+0.5) == 5
                                 
这是为什么,不太明白,,,,都是加上0.5吗?
最佳答案
2017-4-10 13:47:24
这个四舍五入涉及2个问题
1,int()函数是会把有小数点的浮点数直接取整,只会保留整数部分,不管小数部分是多少
2,为什么要加0.5
举个列子
分别有三个浮点数a,b,c,不加0.5直接打印试试
  1. a = 2.3
  2. b = 2.5
  3. c = 2.7
  4. print(int(a),int(b),int(c))
  5. >>>2 2 2
复制代码


加0.5之后呢,a = 2.8,b=3.0,c=3.2
显然,还是int(a),int(b),int(c)
之后你就得到了你想要的2 3 3
所以,这个0.5其实就是为了把你要四舍五入的浮点数的整数部分变成最终要的结果

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-10 13:37:11 | 显示全部楼层
这有好纠结的?别个要它 int()就是只取整数部分 ,庵们也美办法。。。
要四色五入 就round:
round(1.2)
1.0
round(1.5)
2.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-10 13:38:20 | 显示全部楼层
对。用int做四舍五入,都是加上0.5,这样5.4变成了5.9,取整后为5;5.5变成了6.0,取整后为6
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-10 13:47:24 | 显示全部楼层    本楼为最佳答案   
这个四舍五入涉及2个问题
1,int()函数是会把有小数点的浮点数直接取整,只会保留整数部分,不管小数部分是多少
2,为什么要加0.5
举个列子
分别有三个浮点数a,b,c,不加0.5直接打印试试
  1. a = 2.3
  2. b = 2.5
  3. c = 2.7
  4. print(int(a),int(b),int(c))
  5. >>>2 2 2
复制代码


加0.5之后呢,a = 2.8,b=3.0,c=3.2
显然,还是int(a),int(b),int(c)
之后你就得到了你想要的2 3 3
所以,这个0.5其实就是为了把你要四舍五入的浮点数的整数部分变成最终要的结果

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-12 14:43:39 | 显示全部楼层
gopythoner 发表于 2017-4-10 13:47
这个四舍五入涉及2个问题
1,int()函数是会把有小数点的浮点数直接取整,只会保留整数部分,不管小数部分 ...

a = 5.6
  int(5.6+0.5) = 6
    意思就是说不管小数部分是多少,,都是加上0.5吗?
     都是加上0.5后再向下取整?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-12 15:36:53 | 显示全部楼层
枫丹白露666 发表于 2017-4-12 14:43
a = 5.6
  int(5.6+0.5) = 6
    意思就是说不管小数部分是多少,,都是加上0.5吗?

+0.5并不是一种规定,而是因为加完0.5能够满足:
1、让需要四舍的整数部分不会进一位,所以会舍,比如2.4+0.5=2.9,整数部分还是2,相当于舍
2、让需要五入的整数部分进了一位,所以会入,比如2.6+0.5=3.1 整数部分就变成3了,可以入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-12 22:24:25 | 显示全部楼层
gopythoner 发表于 2017-4-12 15:36
+0.5并不是一种规定,而是因为加完0.5能够满足:
1、让需要四舍的整数部分不会进一位,所以会舍,比如2. ...

那还可以加其他的数吗?
    0.6 0.7 0.8。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-12 23:18:46 | 显示全部楼层
枫丹白露666 发表于 2017-4-12 22:24
那还可以加其他的数吗?
    0.6 0.7 0.8。。。。。。。

当然不行, 你根本还没理解为什么只能+0.5
如果+0.6的话,那2.4+0.6不是等于3么,然后你int(3)不就是等于3
那2.4不就被你变成3了?
这个0.5正好是一个零界点的值,所以只能+0.5,虽然不是一个规定,但是相当于一种规律
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-13 19:57:50 | 显示全部楼层
gopythoner 发表于 2017-4-12 23:18
当然不行, 你根本还没理解为什么只能+0.5
如果+0.6的话,那2.4+0.6不是等于3么,然后你int(3)不就是等 ...

好的 谢谢你,我明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-17 09:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表