python的 取整 及 四舍五入方法(包含list元素取整)

article/2025/10/8 21:22:59

目录

  • 1、向下取整`int()`
  • 2、四舍五入`round()`
    • 2.1 表达式:
    • 2.2 注意:尽量不用round!,原因如下
  • 3、向上取整`math.ceil()`
  • 4、分别取整数部分和小数部分
  • 5、list元素取整

1、向下取整int()

>>> a = 3.75
>>> int(a)
3

2、四舍五入round()

2.1 表达式:

round( x [, n] )

  • x – 数值表达式。
  • n – 数值表达式,表示从小数点位数。
print "round(80.23456, 2) : ", round(80.23456, 2)
print "round(100.000056, 3) : ", round(100.000056, 3)
print "round(-100.000056, 3) : ", round(-100.000056, 3)
  round(80.23456, 2) :  80.23round(100.000056, 3) :  100.0round(-100.000056, 3) :  -100.0
  • 当参数n不存在时,round()函数的输出为整数。
  • 当参数n存在时,即使为0,round()函数的输出也会是一个浮点数。
  • 此外,n的值可以是负数,表示在整数位部分四舍五入,但结果仍是浮点数。
print(round(123.45))
print(round(123.45,0))
print(round(123.45,-1))
123
123.0
120.0

2.2 注意:尽量不用round!,原因如下

在实际使用中发现round函数并不总是如上所说的四舍五入

round(2.355, 2)
2.35

因为该函数对于返回的浮点数并不是按照四舍五入的规则来计算,而会收到计算机表示精度的影响。

在python2.7的doc中,round()的最后写着,“Values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done away from 0.” 保留值将保留到离上一位更近的一端(四舍六入),如果距离两端一样远,则保留到离0远的一边。
所以round(0.5)会近似到1,而round(-0.5)会近似到-1

但是到了python3.5的doc中,文档变成了 " values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice."
如果距离两边一样远,会保留到偶数的一边。
比如round(0.5)round(-0.5)都会保留到0,而round(1.5)会保留到2

特别注意以下两种情况:ref–>

  1. 如果保留位数的后一位如果是5,且5后面不再有数,要根据应看尾数“5”的前一位决定是舍去还是进入:如果是奇数则进入,如果是偶数则舍去。例如5.215保留两位小数为5.22; 5.225保留两位小数为5.22。
a=round(5.215,2)
b=round(5.225,2)
print('a={0} b={1}'.format(a,b))
	a=5.21 b=5.22
  1. 如果保留位数的后一位如果是5,且5后面仍有数。例如5.2254保留两位小数为5.23,也就是说如果5后面还有数据,则无论奇偶都要进入。
a=round(5.2254,2)
b=round(5.2153,2)
print('a={0} b={1}'.format(a,b))
	a=5.23 b=5.22

在这里插入图片描述Python3.8中的结果)

  1. 如果是一个数组元素:
import numpy as np
a=np.array([1.850,10])
round(a[0]/1.250)

在这里插入图片描述
得到的是一个数组浮点数

3、向上取整math.ceil()

>>> import math
>>> math.ceil(3.25)
4.0
>>> math.ceil(3.75)
4.0
>>> math.ceil(4.85)
5.0

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


>>> 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) 才对。这里涉及到了另一个问题,即浮点数在计算机中的表示,在计算机中是无法精确的表示小数的,至少目前的计算机做不到这一点。

5、list元素取整

a=np.zeros(3)
a =list(map(int,a))
print(a)
type(a[0])

在这里插入图片描述


http://chatgpt.dhexx.cn/article/lhyuwWEF.shtml

相关文章

python中取整数操作

python中取整数操作 ★向靠近零的方向取整 int(x)内置函数【https://docs.python.org/zh-cn/3/library/functions.html#int 】,向靠近零的方向取整,x是数字表达式,如 int(4.4) #得到4 int(-4.4) #得到-4 int(4.5) #得到4 int(-4.5) …

python取整(不同方法的取整)

1. 向下取整 int是截断取整 举个例子 4.x等于4 2.四舍五入 round( )函数简介 菜鸟教程中介绍到,round() 函数作用就是,返回浮点数x的四舍五入值。 x round(5.76543, 2) print(x) >>> x5.773、向上取整 向上取整需要用到 math 模块中的 ce…

【Java之网络】网络基本概念总结

网络相关概念 一. 局域网和广域网1. 局域网(LAN)(1)定义(2)特点 2. 广域网(WAN)(1)定义(2)特点 二. IP地址和端口号1. IP地址2. 端口号…

java网络编程学习基础篇

一、基础背景 时代背景 自2000年左右,Web的快速发展以及2010左右的云原生和云计算的提出,网络通信的重要性越来越凸显出来; 对于用户来说:软件的响应速度和体验是越来越重要的,而网络通信是决定响应速度关键因素之一…

神经网络和CNN的一些基础概念,基础知识的梳理

(好吧,这又是一篇软文,适合初学者) 一、通用概念: 1. 有监督学习方法与非监督学习方法: 必须要有训练集与测试样本,模型在训练集中寻找规律,训练结束对测试样本使用这种规律进行…

一些神经网络基础知识归纳

神经网络(NN)复杂度 NN复杂度,多用NN层数和NN参数个数表示 如上图示 空间复杂度 层数隐藏层的层数1个输出层 上图为2层NN 总参数 3*44 4*2226 时间复杂度 乘加运算次数 3*44*220 指数衰减学习率 可以先用较大学习率,快速得…

Java网络编程(一)网络的基本认知

前言 这是一个信息化的时代,在生活中,网络通信无处不在。比如发送短信,邮件,视频通话等。 以邮件为例子: ① 收件人: 相当于网络编程的ip地址端口号,定位到某一个具体的地方!只有找…

第四章 使用JAVA构建神经网络

• 构建一个神经网络 •激活函数 • Encog持久化 •在代码里使用Encog Analyst 这章将展示用Encog怎样构造前馈与简单递归神经网络,以及在最后部分怎样保存这些神经网络。创建神经网络类型使用BasicNetwork和BasicLayer这两个类,除了这两个类,还使用…

深入浅出讲解神经网络的种类及举例说明

本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!个人主页:有梦想的程序星空个人介绍:小编是人工智能领域硕士,全栈工程师&a…

Java网络基础知识

目录 一,计算机网络 1,概念 2,计算机网络的主要功能 3,计算机网络分类 二,网络通信协议及接口 1,网络通信协议 2,网络通信接口 3,通信协议分层思想 4,协议分类 …

神经网络可以用来分类吗,神经网络如何实现分类

怎么用spss神经网络来分类数据 。 用spss神经网络分类数据方法如下:神经网络算法能够通过大量的历史数据,逐步建立和完善输入变量到输出结果之间的发展路径,也就是神经网络,在这个神经网络中,每条神经的建立以及神经…

BP神经网络JAVA实现详解

注:本文手动搬家自我的新浪博客点击打开链接 从2016年3月份左右,我的毕业设计开题答辩时间正好是AlphaGo大战李世石之日。还记得当时答辩PPT最末引用的图片还是这张: 李世石大战Google的AlphaGo 不过当时答辩情况并不理想,答辩组老…

Java网络编程--网络基础

文章目录 网络协议常用网络协议族(簇)(protocol)端口(port)常见知名端口动态端口 IP地址IP地址分类IPv4的分类IPv6子网掩码 网络协议 是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。为了使不同计算机厂家生产的计…

神经网络如何实现分类,神经网络基本概念

人工神经网络分类方法 从20世纪80年代末期,人工神经网络方法开始应用于遥感图像的自动分类。 目前,在遥感图像的自动分类方面,应用和研究比较多的人工神经网络方法主要有以下几种:(1)BP(BackP…

神经网络如何进行分类

1.首先搞清楚什么是感知机 如上图所示,输入为向量,经线性变换,再通过激活函数得到输出,这样一个完整的结构成为感知机。感知机是人工神经网络的最小单元,本质上由一个仿射变换接一个非线性变换组成。 上图wxb属于仿射变…

Java基础学习(17)网络编程

Java基础学习 一、 网络编程1.1 什么是网络编程1.2 常见的软件架构:1.3 网络编程的三要素1.4 IP1.4.1 InetAddress用法 1.5 端口号1.6 协议1.6.1 UDP协议1.6.1.1 UDP的三种通信方式 1.6.2 TCP协议1.6.2.1 TCP底层原理 一、 网络编程 1.1 什么是网络编程 解释&…

java简单的神经网络

运行环境:jre1.7 以下是神经网络的主体类 public class NeuralNetwork {int inputNodes;//输入层节点数int hiddenNodes;//隐藏层节点数int outputNodes;//输出层节点数double learningRate;//学习率double[][] weight_ih;//输入层与隐藏层之间的权重double[][] w…

java实现神经网络算法,java调用神经网络模型

如何用70行Java代码实现神经网络算法 。 如何用70行Java代码实现神经网络算法import.Random;publicclassBpDeep{publicdouble[][]layer;//神经网络各层节点publicdouble[][]layerErr;//神经网络各节点误差publicdouble[][][]layer_weight;//各层节点权重publicdouble[][][]la…

神经网络如何实现分类,神经网络分类特点区别

人工神经网络分类方法 从20世纪80年代末期,人工神经网络方法开始应用于遥感图像的自动分类。 目前,在遥感图像的自动分类方面,应用和研究比较多的人工神经网络方法主要有以下几种:(1)BP(Back …

Java神经网络(一)——Neuroph初次使用

Java神经网络 前言Neuroph框架Neuroph结构框架图Java API 及其类库说明(core nnet util) Neuroph简单案例实现下载必要的Neuroph jar包导入jar包找案例(在书中或者网上)运行解决方案 前言 学了好一阵子时间的神经网络,…