鱼C论坛

 找回密码
 立即注册
查看: 1398|回复: 4

新手请教一个关于地板除的问题

[复制链接]
发表于 2018-6-6 14:42:40 | 显示全部楼层 |阅读模式

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

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

x
在做学习笔记的时候,发现除法运算符很奇怪,整除算出来也会有小数点,于是接触到“地板除”这个符号,就是两条斜杠。

但是搞不懂这个符号是怎么算的,比如:
print(3.6 // 1.2),输出结果是3
print(3.3 // 1.1),输出结果是2
第一个是3没问题,第二个为什么是2?

网上有说法是,先对被除数进行四舍五入,再计算结果截取整数输出,可这也不对啊,比如下面这种:
print(3.4 // 1.1),输出结果是3
3.4四舍五入是3,除以1.1取整的话,那就应该是2啊


新手问题,谢谢回复!

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-6-6 15:03:41 | 显示全部楼层
应该是精度问题,计算机内部对浮点数有误差,所以导致
3.3//1.1==2.9999999999,因为是地板除,所以取2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-8 13:40:23 | 显示全部楼层
地板除是向下取整
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-8 17:51:43 | 显示全部楼层
浮点的陷阱。计算机里表示小数采用的是浮点近似数。只要不是2的-N次方的小数能不能精确表示。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-8 19:31:28 | 显示全部楼层
4楼说的对
In [28]: 3.3/1.1
Out[28]: 2.9999999999999996

看js的版本
3.3/1.1
2.9999999999999996

浮点数的问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-30 16:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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