python--取整

本文介绍了Python中常用的四种取整方法:向下取整、四舍五入、向上取整及分离整数与小数部分,并提供了实用示例代码。

Python中取整的几种方法吧。最下方代码为通过学习取整后,自己写的一个实用代码,仅供参考。

1、向下取整

向下取整直接用内建的 int() 函数即可:

?
1
2
3
>>> a = 3.75
>>> int (a)
3

2、四舍五入

对数字进行四舍五入用 round() 函数:

?
1
2
3
>>> round ( 3.25 ); round ( 4.85 )
3.0
5.0

3、向上取整

向上取整需要用到 math 模块中的 ceil() 方法:

?
1
2
3
4
5
6
7
>>> import math
>>> math.ceil( 3.25 )
4.0
>>> math.ceil( 3.75 )
4.0
>>> math.ceil( 4.85 )
5.0

4、分别取整数部分和小数部分

有时候我们可能需要分别获取整数部分和小数部分,这时可以用 math 模块中的 modf() 方法,该方法返回一个包含小数部分和整数部分的元组:

?
1
2
3
4
5
6
7
>>> import math
>>> math.modf( 3.25 )
( 0.25 , 3.0 )
>>> math.modf( 3.75 )
( 0.75 , 3.0 )
>>> math.modf( 4.2 )
( 0.20000000000000018 , 4.0 )

有人可能会对最后一个输出结果感到诧异,按理说它应该返回 (0.2, 4.0) 才对。这里涉及到了另一个问题,即浮点数在计算机中的表示,在计算机中是无法精确的表示小数的,至少目前的计算机做不到这一点。上例中最后的输出结果只是 0.2 在计算中的近似表示。Python 和 C 一样, 采用 IEEE 754 规范来存储浮点数。

通过上述的学习,附一段自己写的向上和向下取整的代码:

elif 1000 < i <= 500000:
    logger.info('保值为: ' + str(i))
    data = int(insure_list[0]) * 0.005
    logger.info('计算保费: ' + str(data))
    data_m = list(math.modf(data))
    logger.info('校验计算出的保费是不是整数')
    if len(data_m) > 1:
        logger.info('说明金额存在小数部分')
        if data_m[0] >= 0.5:
            print(data)
            data_value = math.ceil(data)
            logger.info('向上取整')
        else:
            data_value = int(data)
            logger.info('小数小于0.5时,向下取整')
上述代码仅供参考,愿大神们提出更好的意见和建议!
### Python中的取整方法 #### 向下取整Python中,可以通过`math.floor()`函数来进行向下取整操作。此函数返回小于或等于给定参数的最大整数[^1]。 ```python import math number = 3.75 floor_result = math.floor(number) print(floor_result) # 输出: 3 ``` 对于负数的情况同样适用: ```python negative_number = -3.25 negative_floor_result = math.floor(negative_number) print(negative_floor_result) # 输出: -4 ``` #### 向零取整(截断) 当仅使用内置的`int()`转换时,默认执行的是向零取整的操作,即去掉小数部分而不考虑正负方向上的变化[^2]。 ```python positive_truncation = int(3.99) negative_truncation = int(-3.99) print(f"Positive truncation result is {positive_truncation}") # 输出: Positive truncation result is 3 print(f"Negative truncation result is {negative_truncation}") # 输出: Negative truncation result is -3 ``` #### 四舍五入 利用内建函数`round()`可以完成四舍五入的任务。该函数会根据标准数学规则决定最接近输入值的那个整数值[^5]。 ```python value_to_round = 3.5 rounded_value = round(value_to_round) print(rounded_value) # 输出: 4 ``` 需要注意的是,如果遇到正好位于两个整数中间的位置,则遵循“偶数优先”的原则进行舍入。 #### 向上取整 为了实现向上取整的功能,需要引入`math.ceil()`函数。它总是返回大于或等于指定浮点数最小的一个整数。 ```python ceiling_example = math.ceil(3.01) print(ceiling_example) # 输出: 4 ``` 上述就是Python里主要的几种取整手段以及对应的简单例子说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值