round四舍五入在python2与python3版本间区别

round()方法返回数值的小数点四舍五入到n个数字。
语法
以下是round()方法的语法:
round( x ,n)
参数
x --这是一个数值,表示需要格式化的数值
n --这也是一个数值,表示小数点后保留多少位
返回值
该方法返回 数值x 的小数点四舍五入到n个数字
PS: round 对传入的数据进行四舍五入,如果ngigits不传,默认是0(就是说保留整数部分).ngigits<0 的时候是来对整数部分进行四舍五入,返回的结果是浮点数.
例子
下面的例子显示了round()方法的使用
#!/usr/bin/python2 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.23 round(100.000056, 3) : 100.0 round(-100.000056, 3) : -100.0
Python3和Python2版本的区别
Python2把x四舍五入为远离0的最近倍数,如round(0.5)=1, round(-0.5)=-1;
Python3则会把x四舍五入为最近的偶数倍数,如round(0.5)=0, round(1.5)=2.0, round(2.5)=2.0
代码:
#!/usr/bin/python2 print round(2.635, 2) print round(2.645, 2) print round(2.655, 2) print round(2.665, 2) print round(2.675, 2)
输出结果
2.63 2.65 2.65 2.67 2.67
round方法缺陷
通过上面的例子大家可以发现, round的四舍五入方法貌似和我们理解的不太一样, 其实这个不是round的bug, 这个主要来自输入时十进制转换为计算机内部二进制时,且这个问题在有限精度下不可能解决,也不需要解决。
Python 的 decimal 模块可用于解决这一问题。
如果大家不需要四舍五入的话,也可以考虑使用我们最熟悉的print("%.2f" % 2.675)这种方式实现。
相关文章:
round四舍五入在python2与python3版本间区别
round()方法返回数值的小数点四舍五入到n个数字。 语法 以下是round()方法的语法: round( x ,n) 参数 x --这是一个数值,表示需要格式化的数值 n --这也是一个数值,表示小数点后保留多少位 返回值 该方法返回 数值x 的小数点四舍五入到n个数字 …...
新概念英语第二册(73)
【New words and expressions】生词和短语(9) record-holder 纪录保持者 truant n. 逃学的孩子unimaginative adj. 缺乏想像力的shame n. 惭愧,羞耻 hitchhike v. 搭便车旅行 m…...
Vue项目实战-空间论坛(2)
项目实战 实现userlist页面 获取userlist列表,可使用ajax,axios 实现 这里采用ajax实现,需要添加Jquery依赖,然后在UserListView.vue中引入 在UserListView.vue组件的入口函数中定义users变量,并引入ref 使用ajax从云端动…...
小老虎吃汉堡,认识continue和break
continue;//结束本次循环,执行下面的循环 break; //结束本次及以后的循环,执行循环下面的代码1. /*小老虎在吃汉堡,但是第三个汉堡上被挤了芥末,不能吃,跳过去又吃第四、五个*/ for (int i1;i<5;i){if (i3){contin…...
docker搭建zero-ui
确保你已经安装了Docker和Docker Compose。如果没有,请参照官方文档安装:Docker 和 Docker Compose。 使用 Docker CLI 获取 Zero-UI 镜像: 首先,你需要从Docker Hub获取Zero-UI的Docker镜像。你可以使用 docker pull 命令来下载它。 docker…...
187基于matlab的弹道目标跟踪滤波方法
基于matlab的弹道目标跟踪滤波方法,扩展卡尔曼滤波(extended Kalman filter, EKF)、转换测量卡尔曼滤波(conversion measurement Kalman filter, CMKF)跟踪滤波,得到距离、方位角、俯仰角误差结果。程序已调…...
讲给自己听的的技术---WMS
标题一 点题 为什么我会说,这是说给自己听的了?做项目有三个月了,外加之前三个月的自学,自我感觉对WMS系统有了一点了解,今天三月九号晚上九点二十,就让我自己和自己说说吧。 标题二 WMS的职责是什么…...
在Java中,请详细讲解并发、多线程、异步的区别和联系
在Java中,请详细讲解并发、多线程、异步的区别和联系 并发、多线程、异步是Java编程中与并行处理相关的三个重要概念,它们之间既有区别也有联系。 并发(Concurrency): 并发是指在同一时间段内,多个任务或…...
网络安全及信息安全常识
网络安全及信息安全常识 闻知:西安之地,借软件正版化,诈骗违法犯罪多有。本人自2008年10月,以劳动合同入职软件公司后,知至今日,普通百姓,电脑知识匮乏。因此,当此时,有前…...
(十五)【Jmeter】取样器(Sampler)之HTTP请求
简述 操作路径如下: HTTP请求 (HTTP Sampler): 作用:模拟发送HTTP请求并获取响应。配置:设置URL、请求方法、请求参数等参数。使用场景:测试Web应用程序的HTTP接口性能。优点:支持多种HTTP方法和请求参数,适用于大多数Web应用程序测试。缺点:功能较为基础,对于复杂…...
YOLOv8.1.0安装
【YOLO】YOLOv8训练环境配置 python 3.8.18 cuda 11.3.1 cudnn 8.2.1 pytorch 1.12.1-gpu版 - 知乎 (zhihu.com) 一、Anaconda 默认装好了可用的Anaconda,安装教程见Win10系统anaconda安装 - 知乎 (zhihu.com) 二、在虚拟环境下用conda安装 1.创建虚拟环境 …...
Linux下使用MD5SUM命令详解
在Linux操作系统中,md5sum是一个非常实用的工具,用于生成和校验文件的MD5散列值。MD5是一种广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值,常用来确保数据的完整性和一致性。 一、MD5SUM命令…...
蓝桥杯python常用内置函数
一、 abs() #返回数字的绝对值 例: 二、 all() #判断给定的可迭代参数中的所有元素是否都为True,若是则返回True,反之返回False 例: 三、 any() #判断给定的可迭代参数是否都为False,全为False则返回False&am…...
设计模式 工厂模式
工厂模式,最重要的是反射。 反射:Class类 java的注释是这样写的: Class没有公共构造函数。相反,Class对象是在类加载时由Java虚拟机自动构造的,并通过调用类加载器中的defineClass方法来实现。...
【C++进阶】哈希的应用 --- 布隆过滤器
👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞…...
Linux——自写一个简易的shell
目录 前言 一、打印提示信息 二、分割字符串 三、替换程序 前言 之前学习了很多进程相关的知识,包括环境变量、进程的创建与退出、进程等待、进程替换。现在可以用所学的作一个小总结,手撕一个shell解释器,大致的思路是先通过环境变量获…...
【操作系统学习笔记】处理器管理1.3
【操作系统学习笔记】处理器管理1.3 参考书籍: 王道考研 视频地址: Bilibili 进程控制 进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换的功能。简而言之,进程控制就是要实现进程的状态转换…...
AndroidUI--setContentView
我们的Activity通常继承自Activity或者AppCompatActivity,这两个setContentView流程是不同的 一、继承自Activity 1、Activity.setContentView Activity中setContentVIew调用了getWindow().setContentView(view, params); getWindow返回的是mWindow,mWi…...
编程笔记 Golang基础 047 mysql数据库连接与操作
编程笔记 Golang基础 047 mysql数据库连接与操作 一、连接与操作1. 安装MySQL驱动2. 导入驱动包3. 连接数据库4. 执行SQL查询和操作5. 使用连接池6. 处理事务 二、连接字符串三、应用示例四、比较 MySQL凭借其开源、高效、稳定、灵活、安全以及广泛的社区支持等诸多优势&#x…...
.jsonl 格式文件的解释
根据 CHATGPT .jsonl 文件格式是一种文本文件格式,通常用于存储每行一个JSON对象的数据。.jsonl 文件的每一行都是一个独立的JSON对象,这些对象之间没有任何分隔符。 以下是一个示例.jsonl文件的内容: {"name": "John"…...
别再问Flutter怎么热更新了!一份给Android开发者的‘合规’热修复指南
Flutter热更新实战:Android开发者视角下的合规解决方案 作为Android开发者,当你第一次接触Flutter混合开发时,最困惑的问题之一可能就是:如何在Flutter模块中实现热更新? 这确实是个棘手的问题——Flutter官方明确表示…...
NVIDIA Profile Inspector终极指南:解锁显卡隐藏性能的免费工具
NVIDIA Profile Inspector终极指南:解锁显卡隐藏性能的免费工具 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 还在为游戏卡顿、画面撕裂而烦恼吗?NVIDIA Profile Inspector是一…...
【技术底稿 17】DevOps 监控告警实战踩坑复盘 —— 企微机器人告警 + Milvus 向量库监控全流程验证
一、前言 本次实战围绕 DevOps 基础设施监控体系完善展开,基于现有 Docker 单机 Linux 环境、PrometheusAlertmanager 原生监控架构,开展两项核心工作: 验证 Alertmanager 对接企业微信群机器人 Webhook 移动端告警方案,提升告警…...
云原生环境中的存储管理:从PV到StorageClass的全面指南
云原生环境中的存储管理:从PV到StorageClass的全面指南 🔥 硬核开场 各位技术大佬们,今天咱们来聊聊云原生环境中的存储管理。别跟我说你还在为容器存储问题头疼,那都2023年了!在云原生时代,存储是Kubernet…...
别再用成品USB麦克风了!手把手教你用STM32F4和CubeMX打造专属录音声卡(附完整代码)
从零打造专属录音声卡:STM32F4与CubeMX实战指南 市面上大多数USB麦克风都是封闭的黑箱系统,无法满足硬件创客和嵌入式开发者对底层控制的渴望。本文将带你用STM32F4开发板和CubeMX工具,打造一款完全可定制的USB录音设备,突破成品声…...
KICS:把每把锁变成一行代码——每一个文明角色疑虑拆弹方案
KICS:把每把锁变成一行代码——每一个文明角色疑虑拆弹方案摘要: 政客怕主权沦丧、标准被武器化,KICS 以地理分布式节点、主权规则适配层、非对称共识及紧急熔断机制回应;资本怕没有护城河与需求缺失,KICS 锁定 AI 保险…...
别再混淆了!OpenCV灰度拉伸 vs 直方图均衡,一次讲清区别与适用场景
OpenCV灰度拉伸与直方图均衡:技术原理与实战选择指南 在数字图像处理领域,对比度增强是基础却至关重要的环节。许多初学者面对灰度拉伸和直方图均衡这两种技术时,常陷入选择困境——它们看似都能改善图像质量,但实际原理和适用场景…...
暗黑破坏神2终极优化指南:3步让经典游戏在Win10/11焕发新生
暗黑破坏神2终极优化指南:3步让经典游戏在Win10/11焕发新生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在…...
突破传统收音机局限:用SI4735库打造智能无线电系统的终极指南
突破传统收音机局限:用SI4735库打造智能无线电系统的终极指南 【免费下载链接】SI4735 SI473X Library for Arduino 项目地址: https://gitcode.com/gh_mirrors/si/SI4735 还在为传统收音机开发繁琐的硬件设计而烦恼吗?还在为复杂的射频电路调试而…...
告别示波器万用表:手把手教你用单片机给三极管放大电路做“全身体检”
用STM32打造智能电路诊断仪:三极管放大电路全参数自动化测试方案 在硬件调试的日常中,电子工程师们常常需要反复连接示波器、信号发生器和万用表,手动记录数据后再进行繁琐计算。这种传统方法不仅效率低下,在面对复杂故障时更显得…...
