Python怎么取整(Python程序打包)

Python取整方式:背景在处理数据的时候,碰到了一个问题,就是取整方式!比如给定一个数值型列表,我需要分别获取它位置为长度的0%,25%,50%,75%,100%处的几个数字。但Python自带的int是向下取整,如果数字长度是5,理论上这五个数字分别对应0%,25%,50%,75%,100%的位置,但使用int,结果却并不是入次。比如当5*0.75时,如果加上int(5*0.7

大家好,又见面了,我是你们的朋友全栈君。

取整方式

下面介绍几种常用的取整方法,包括向下取整、四舍五入、向上取整。

(1)向下取整

向下取整很简单,直接使用int()函数即可,如下代码(Python 2.7.5 IDLE)

a = 3.75
 int(a)

3
(2)四舍五入

第二种就是对数字进行四舍五入,具体的看下面的代码:

 a=3.25;b=3.75
 round(a);round(b)
3.0
4.0

(3)向上取整

但三种,就是向上取整,也就是我这次数据处理中需要的,由于之前没在Python中用到过,所以不太熟悉,其实Python的math中就带了向上取整的函数,即 ceil 方法,专门用于向上取整,实例如下:

import math
 math.ceil(3.25)
4.0
 math.ceil(3.75)
4.0

练习
5、某公司的市内通话计费标准为:
三分钟内 0.2元
三分钟后每增加一分钟增加0.2元,不足一分钟按照一分钟算
要求编写程序,给定一个通话时间(单位:s),计算出收费金额

import math

def telfare(telTime):
    time = math.ceil(float(telTime)/60)  #math.ceil向上取整
    if time <= 3:
        fare = 0.2
    else:
        fare = 0.2+(time-3)*0.2
    return fare

print  telfare(250)

6、某市的出租车计费标准为:
3公里内10元,3公里以后每增加0.5公里加收1元,每等待2分钟加收1元
超过15公里加收原价50%的空驶费

#参数:公里数km,时长time,
import math
def taxiCost(km,time):
    km=float(km)
    mins=math.ceil(float(time/60))
    if km<=3.0:
        cost=10+math.ceil(mins/2.0)
    elif km>15:
        cost=(10+math.ceil(mins/2.0)+(km-3.0))*1.5
    elif km>3 and km<=15:
        cost=10+math.ceil(mins/2.0)+(km-3.0)
    return cost
print taxiCost(16,180)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127959.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号