python中取整数的几种方法(python怎么取整)

一、向零取整:int()python自带的int()取整>>>int(1.2)1>>>int(2.8)2>>>int(-0.1)0>>>int(-5.6)-5总结:int()函数是“向0取整”,取整方向总是让结果比小数的绝对值更小二、向上取整:math.ceil()>>>importmath&gt…

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

一、向零取整:int()

python自带的int()取整

>>> int(1.2)

1

>>> int(2.8)

2

>>> int(-0.1)

0

>>> int(-5.6)

-5

总结:int()函数是“向0取整”,取整方向总是让结果比小数的绝对值更小

二、向上取整:math.ceil()

>>> import math

>>>

>>> math.ceil(0.6)

1

>>> math.ceil(1.1)

2

>>> math.ceil(3.0)

3

>>> math.ceil(-0.3)

0

>>> math.ceil(-5.1)

-5

总结:math.ceil()严格遵循向上取整,所有小数都是向着数值更大的方向取整,不论正负数都如此

三、向下取整:math.floor() , “//”

>>> import math

>

>>> math.floor(0.5)

0

>>> math.floor(1.2)

1

>>> math.floor(-0.9)

-1

>>> math.floor(-3.0)

-3

>>> math.floor(-3.1)

-4

总结:math.floor()严格遵循向下取整,所有小数都是向着数值更小的方向取整,不论正负数都如此

再看看python的取整“//“,同样是向下取整,记住啊:

>>> 5//3

1

>>> 1//5

0

>>> 8//4

2

>>> -6//5

-2

>>> -8//9

-1

>>> -8//2

-4

四、四舍五入 round(x,[.n])

>>> round(1.1)

1

>>> round(4.5)

4

>>> round(4.51)

5

>>> round(-1.3)

-1

>>> round(-4.5)

-4

>>> round(-4.51)

-5

>>> round(1.248,2)

1.25

>>> round(1.241,2)

1.24

>>> round(-1.248,1)

-1.2

>>> round(1.25,1)

1.2

>>>

这里注意:round(4.5)的结果是4,round(4.51)的结果才是5,这里要看5后面的数字,只有大于5时才进1,恰好等于5时还是舍去的。这与我们字面上理解的”五入“有所出入(Python 3.7.4)。

五、分别取整数和小数部分 math.modf()

>>> math.modf(100.123)

(0.12300000000000466, 100.0)

>>> math.modf(-100.123)

(-0.12300000000000466, -100.0)

>>>

math.modf()函数得到一个(x,y)的元组,x为小数部分,y为整数部分(这里xy均为float浮点数)

注意:结果是”小数+整数“,而非”整数+小数“。

六、%求模

python运算符%取模 – 返回除法的余数

>>> 5%2

1

>>> 0.5%2

0.5

>>> 5.3%2

1.2999999999999998“`

正数很好理解,这里返回的余数时一个无线接近结果的近似值。

“`python

>>> -2.5%8

5.5

>>> -3.2%2

0.7999999999999998

>>> 5%-2

-1

>>> 5%(-3)

-1

>>> 5.2%-2

-0.7999999999999998

>>> -8%-3

-2

>>> -2%-8

-2

>>> -2%-9

-2

懵了,为什么不是:-2.5和-1.2,而是:5.5和0.8?

求模运算规则是由除法规则定的:

模=被除数-除数×商

这里的”商”的值其本质是由python的整除//采取的向下取整算法决定的。所以,整理下公式就是这样的:

模=被除数-除数×(被除数//除数)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年4月15日 下午11:40
下一篇 2022年4月15日 下午11:40


相关推荐

  • Nginx转发ssh服务「建议收藏」

    Nginx转发ssh服务「建议收藏」一、需求当前置机需要转发内网主机的ssh端口号,方便外网直连服务器。二、nginx配置注:与events,http同级,配置stream即可events{worker_connections1024;accept_mutexon;}stream{ upstreamssh{ server10.11.4.78:22;#这里IP是虚拟机的,对应虚拟机的IP+Port } server{ listen9028;#外层通信需要的tc

    2022年10月18日
    2
  • js数组遍历十种方法

    js数组遍历十种方法1.some()遍历数组,只要有一个以上的元素满足条件就返回true,否则返回false,退出循环对数组中每个元素执行一次ok函数,知道某个元素返回true,则直接返回true。如果都返回false,则返回false检查整个数组中是否有满足元素。privatesome(id:number){constarr=[{cityId:195,cityName:’深圳’},{cityId:196,cityNa

    2022年10月7日
    4
  • thetrialthatrockedtheworld总结_the average hourly wage

    thetrialthatrockedtheworld总结_the average hourly wage聊聊storm WindowTridentProcessor的FreshCollector

    2022年4月20日
    86
  • k8s 开源_jdk源码剖析手册

    k8s 开源_jdk源码剖析手册createfunc main() { #随机数 rand.Seed(time.Now().UnixNano()) #创建一个新的命令行对象 command := cmd.NewDefaultKubectlCommand() #日志 logs.InitLogs() defer logs.FlushLogs() #真正执行的命令行 if err := command.Execute(); err != nil { os.Exit(1) }}# NewDefaultKubectl

    2022年8月11日
    6
  • touchesBegan 触摸事件

    touchesBegan 触摸事件一、概念介绍1、在用户使用App过程中,会产生各种各样的事件,iOS中的事件可以分为3大类型:1)触摸事件2)加速计事件3)远程操控事件响应者对象UIResponder        在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件。我们称之为“响应者对象”。      UIApplication、UIViewController、UIView都继承…

    2022年7月25日
    11
  • DeepSeek初学教程 5 与 Flask 快速集成教程

    DeepSeek初学教程 5 与 Flask 快速集成教程

    2026年3月16日
    5

发表回复

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

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