Python中“取整”的各种问题[通俗易懂]

Python向上取整的算法一、初衷:  有时候我们分页展示数据的时候,需要计算页数。一般都是向上取整,例如counts=205pageCouts=20,pages=11页。一般的除法只是取整数部分,达不到要求。二、方法:1、通用除法:  UP(A/B)=int((A+B-1)/B)  取临界值,计算下A+B-1的范围就OK.2、Python除法:…

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

Python 向上取整的算法

一、初衷:

  有时候我们分页展示数据的时候,需要计算页数。一般都是向上取整,例如counts=205 pageCouts=20 ,pages= 11 页。

一般的除法只是取整数部分,达不到要求。

二、方法:

1、通用除法:

  UP(A/B) = int((A+B-1)/B)

  取临界值,计算下A+B-1的范围就OK.

2 、Python除法:

  首先要说的是python中的除法运算,

  • 当使用x/y形式进行除法运算时,那么会进行所谓的true除法,比如2.0/3的结果是 0.66666666666666663。
  • 另外一种除法是采用x//y的形式(向下取整),那么这里采用的是所谓floor除法,即得到不大于结果的最大整数值,这个运算时与操作数无关的。比如2//3的结果是0,-2//3的结果是-1,-2.0//3的结果是-1.0。

  在python 3.0中,x/y将只执行true除法,而与操作数无关;x//y则执行floor除法。

  Python运算向上取整方法:(A+B-1)/B

3、Python match.ceil函数   np.ceil函数

  ceil(x)函数是向上取整,即取大于等于x的最接近整数。

  import math

  math.ceil(float(205)/20)

    import numpy as np
    np.ceil(float(205)/20)

 

 

Python 向上取整的算法

 

1、一般使用floor除法 (np.floor()或者math.floor())

import numpy as np
 
n = np.array([-1.7, -2.5, -0.2, 0.6, 1.2, 2.7, 11])
 
floor = np.floor(n)
print(floor)  # [ -2.  -3.  -1.   0.   1.   2.  11.]

2、一般除法/

A=100
B=16
c=100//16
(c=6)

3、round()四舍五入函数。

np.around 返回四舍五入后的值,可指定精度。

around(a, decimals=0, out=None)

a 输入数组

decimals 要舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置

import numpy as np
 
n = np.array([-0.746, 4.6, 9.4, 7.447, 10.455, 11.555])
 
around1 = np.around(n)
print(around1)  # [ -1.   5.   9.   7.  10.  12.]
 
around2 = np.around(n, decimals=1)
print(around2)  # [ -0.7   4.6   9.4   7.4  10.5  11.6]
 
around3 = np.around(n, decimals=-1)
print(around3)  # [ -0.   0.  10.  10.  10.  10.]

 

Python 分别取整的算法

math模块中的 modf()方法

将整数部分和小数部分分别取出,可以使用math模块中的 modf()方法

例如:

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/126994.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • allegro转pads方法_pads原理图转cadence

    allegro转pads方法_pads原理图转cadence1、首先电脑上安装好三个软件。我的是AD21、Cadence16.6、PADS9.52、先把BRD文件用AD21直接导入,AD21支持直接导入BRD文件的,然后导出低版本AD即可。3、再用PADS9.5安装自带的一个转换功率,叫PADSTanslation,直接导入AD低版本文件转换出PADS的文件即可。…

    2022年10月22日
  • Windows无法连接到System Event Notification Service服务问题解决

    Windows无法连接到System Event Notification Service服务问题解决这也许是自从在笔记本上安装了Windows7以来Kaijia第一次遇到的不明故障。至今Kaijia仍然无法确认造成错误的具体操作,因为在一次开机后系统,系统任务栏的Aero界面突然消失并且提示“Windows无法连接到SystemEventNotificationService服务”,对SystemEventNotificationService服务手动配置并且重启后问题仍然存在

  • springboot上传文件到文件夹

    springboot上传文件到文件夹springboot上传文件至项目当前路径下的文件夹关键代码,之后会分享完整代码到gitee默认上传文件到文件夹/***默认上传文件到文件夹**@paramfolder默认文件夹*@paramfile上传的文件*@return*/privateStringmyfileUp(Stri…

  • react路由配置

    react路由配置包含了LInk跳转以及js触发跳转并传参。这是项目的目录结构,主要的代码都在src目录下,src下面新建一个containers文件夹放我们的一些组件,router文件夹是配置路由用的。按照顺序来写:detail文件夹下的代码importReactfrom’react’classDetailextendsReact.Component{render(){

  • matlab interp1 pchip,matlab多项式插值interp1深入研究(1)「建议收藏」

    matlab interp1 pchip,matlab多项式插值interp1深入研究(1)「建议收藏」学习matlab不久,遇到了多项式插值interp1,在网上没有找到研究其插值方法的文章,在此,对其中插值方法做了一些研究,属于matlab范畴之外,但是无聊研究一下总的来说不会有坏处。interp1的具体运用也比较低,个人理解主要属于样本丢失,补充样本用,所以最后还介绍了傅里叶增值法。正文:首先介绍一个多项式插值函数:Y=interp1(x,y,X,’mothod’)本文主要讨论’mothod…

  • web3j教程:java使用web3j开发以太坊智能合约交易

    web3j教程:java使用web3j开发以太坊智能合约交易

发表回复

您的电子邮箱地址不会被公开。

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