网站首页 > 文章中心 > 其它

python取整的函数

作者:小编 更新时间:2023-09-16 08:05:11 浏览量:19人看过

python语言中,表达式int(-4.3)的值是?

对正数是向下取整,对负数是向上取整.

学python的一个缺点就是对数据类型的基础理解比较少,

你可以用二进制来理解下,举一个有符号的二进制为例子:

对于无符号的?0b000~0b111?来说分别有

0b000?=?0;

0b001?=?1;

比如?uint?就是?int?的无符号形式.

当相同数据为有符号形式时变为:

0b111?=?-1;

(参考原码、反码、补码)

所以根据这个规则,对float,double等数字是同理,在floor时将有符号位进行省略,如以下位运算():

0b000?1?=?0b000

0b001?1?=?0b000

有?0-0?和?1?-?0

0b010?1?=?0b001

0b011?1?=?0b001

按照这个丢失精度的方法计算负数呢?

0b111?1?=?0b111

0b110?1?=?0b111

0b101?1?=?0b110

0b100?1?=?0b110

可知:

所以对负数的?floor?会向上取整,因为丢失精度的方法是直接根据小数点截断的.

python基础-math模块常用的函数

import math

print(r)

其中 函数fabs和abs的区别:函数fabs的作用是求浮点数x的绝对值;函数abs的作用是求x的绝对值.fabs函数原型:double fabs(double x);abs函数原型:int fabs(int x).fabs函数参数:参数x是一个浮点数;abs函数参数:参数x是一个整数

python中取整

定义:大于或等于 x 的最大整数 math.ceil(x)

向上取整运算为Ceiling,用数学符号?表示

定义:小于或等于 x 的最大整数 math.floor(x)

向上取整运算为Floor,用数学符号?表示

其实反斜杠 // 也能实现向下取整:

但是在某些情况下 // 和 math.floor(x) 的实现结果又不一样:

向0取整:x为负数时向上取整,x为正数时向下取整.

python中可用 int(x) 实现,也可以用 math.modf(x) 返回一个包含小数部分和整数部分的元组.

从官方文档得知,Python中 round(x) 采用银行进位法而非传统的四舍五入.

银行进位规则:

但是!注意!:

内心中一片乌鸦飞过,说好的奇进偶舍呢?其实我内心也是奔溃的,继续找答案:

我们都知道,计算机所存储的浮点数并不是表面这么简单,他并不是一个精确值,可以用decimal模块的Decimal对象,将float数据映射为底层的更精确的表示.:

round还是那个round,过错就在于float对象"眼见而非实"上,那到底如何实现真正意义四舍五入呢?

一路写下来,结论就是float心机好深,操作真的要小心点...

以上就是土嘎嘎小编为大家整理的python取整的函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章