Python-其他-round()保留小数位时遇到的问题

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

最近有一个需求,原有整数计算,改成小数计算,保留一位小数。 于是按照需求,将数据结构由 int 改为 float ,计算时采用round()方法来保留小数位。

第一版代码如下:

a = 0.1000001
b = round(a+0.1,1)
c = 0
c += round(a,1)
复制代码

修改完成后进行测试,多次测试过程中发现,b 结果正确,但 c 明明已经使用了round(a,1)保留一位小数,但最后的结果会出现 0.30000000000000004 这样的结果。

实际上 c += round(a,1) 是等同于 c = c + round(a,1),这样在多次计算之后,c 因为加上了 float 类型,从 int 变成了 float,而我们知道,在计算机中,浮点型的精度是有限的,它无法准确的表示,只能用一个近似值代替,而当使用这些近似值代替的浮点数进行运算时,本质上是这些近似值参与运算,出来的结果也就是近似结果。

所以最终代码应该为:

a = 0.1000001
b = round(a + 0.1, 1)
c = 0
c = round(c + a, 1)

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理

想要获取更多Python学习资料可以加QQ:2955637827私聊或加Q群630390733大家一起来学习讨论吧!

52.round()函数保留小数 round(要格式化的数,小数位数) 阅读详情

相关推荐

pythonround()函数的舍入问题

一、round舍入 在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.

demo_yo的博客 3685

python函数round()取整保留小数问题

最近在Python中使用round()函数取整然后后处理乘以100,发现了一个奇怪的问题,如下: >>> round(61 / 154 * 100, 2) 39.61 >>> >>> (round(61 / 154, 2) )* 100 40.0 >>> >>> round(61 / 54, 2) 1.13 >>> (round(61 / 54, 2) )* 100 112.9999999999

rs勿忘初心的博客 2744

Python保留小数处理

保留小数,并做四舍五入处理 1.使用Round内置函数 a=12.345 result = roud(a,2) print(result) # 12.35 # 如原数值为一位小数,则round函数结果仍为一位小数 b=12.3 result_b = round(b,2) print(result_b) # 12.3 2.使用decimal模块 from decimal import Decimal a=12.345 # quntize()函数保留小数位精度 result = Deciaml(a).q

weixin_37637977的博客 3011

Python四舍五入保留小数

出现问题 失败一:使用"%.2f"a = 1.335 print("%.2f" % a) # 输出1.33 失败二:使用round()a = 1.335 print(round(a, 2)) # 输出1.33 失败三:使用Decimal()from decimal import Decimal a = 1.335 print(Decimal(a).quantize(D...

不写代码的博客 1万+

python round保留小数位_Python-其他-round()保留小数位遇到的问题

最近有一个需求,原有整数计算,改成小数计算,保留一位小数。 于是按照需求,将数据结构由 int 改为 float ,计算采用round()方法来保留小数位。第一版代码如下:a = 0.1000001b = round(a+0.1,1)c = 0c += round(a,1)复制代码修改完成后进行测试,多次测试过程中发现,b 结果正确,但 c 明明已经使用了round(a,1)保留一位小数,但最后...

weixin_39561431的博客 1951

python 批量设置数据显示的精确度(保留小数)的方法

快速设置python要显示的数据精确度,也就是保留小数问题,方法很简单: import pandas as pd pd.set_option('precision',4) # 示例 data = pd.DataFrame([[1,2,3],[2,34,5]]) print(data)

积跬步,慕至千里的博客 1万+

【在校课堂笔记】Python2 节课 总结

Python在校课堂笔记】第二节课

仟墨(郑龙浩)的博客 305

详解python中的round()函数

round()python自带的一个函数,用于数字的四舍五入。 但是round()的输出结果与Python的版本有关: 在python2中,round(1.0/2.0)=0;在python3中,round(1.0/2.0)=1 $ python Python 2.7.8 (default, Jun 18 2015, 18:54:19) [GCC 4.9.1] on linux2 Typ...

fly_Xiaoma的博客 11万+

Python保留指定数的小数

Python保留指定数的小数1 ’%.2f’ %f 方法(推荐)2 format函数(推荐)3 round()函数4 不进行四舍五入,直接进行截断 1 ’%.2f’ %f 方法(推荐) f = 1.23456 print('%.4f' % f) print('%.3f' % f) print('%.2f' % f) 结果: 1.2346 1.235 1.23 这个方法会进行四舍五入 2 ...

Lavi的专栏 37万+

python取三小数_python保留小数位的三种实现方法

更多python教程请到: 菜鸟教程www.piaodoo.com人人影视www.sfkyty.com16影视www.591319.com星辰影院www.591319.com前言保留小数位是我们经常会碰到的问题,尤其是刷题过程中。那么在python保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法:方法一:format函数>&gt...

weixin_39610353的博客 6万+

python保留小数_python保留小数位的三种实现方法

前言保留小数位是我们经常会碰到的问题,尤其是刷题过程中。那么在python保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法:方法一:format函数1234>>>print('{:.3f}'.format(1.23456))1.235>>>print(format(1.23456,'.2f'))1.23正如上面代码所示,format有不同...

weixin_39720510的博客 2万+

python中计算结果保留小数

python中计算结果保留小数python中进行数据计算,有需要保留特定的小数位数。以两小数为例,可采用以下方法实现小数位数的保留。 1 使用’%.2f’ % a 输出结果 此处的a为未处理前的结果数据 a = 10 / 3 b = 3.6208 * 5 print('%.2f' % a) print('%.2f' % b) 运算结果为: 3.33 18.10 2 使用’{:.2f}’.format(a) 输出结果 a = 10 / 3 b = 3.6208 * 5 print(

Matcha_ice_cream的博客 7万+

python round()函数保留小数位数的详细用法及round函数的坑

关于round函数的详细用法和一些由于机器数问题产生的错误情况 round(number[, ndigits]) 返回number舍入到小数点后ndigits为精度的值,如果ndigits被省略则会返回最接近输入值的整数

小鱼干儿的博客 1万+

numpy保留小数位

import numpy as np n=2 data= numpy.around(a, n) 保留2小数,n为3,则保留3小数。 默认保留整数

jacke121的专栏 4万+

python保留小数_python保留小数位的三种实现方法

前言保留小数位是我们经常会碰到的问题,尤其是刷题过程中。那么在python保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法:方法一:format函数>>> print('{:.3f}'.format(1.23456))1.235>>> print(format(1.23456, '.2f'))1.23正如上面代码所示,format有不同用...

weixin_39817347的博客 1531

python保留小数的编写程序_python保留小数位的三种实现方法

前言保留小数位是我们经常会碰到的问题,尤其是刷题过程中。那么在python保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单实用的保留小数位的方法:方法一:format函数>>>print('{:.3f}'.format(1.23456))1.235>>>print(format(1.23456,'.2f'))1.23正...

weixin_39599342的博客 8165

Python保留指定小数round就可以了吗?

在项目实践中,程序员经常会收到产品经理保留指定小数的需求。在Python语言中,我们通常会使用内置函数round来完成这个功能,保留指定数的小数round的用法非常简单。例如:那...

Python_Ai_Road的博客 4369

Python四舍五入与保留小数位数(精确舍入与保留

本文深入讲解Python3中 四舍五入、 截断保留保留小数位数、取整,帮助Python初学者排坑! 总结不易,转载请标明出处! 文章目录0. 前言(吐槽)1. 四舍五入(精确)1.1 四舍五入并保留x小数——用decimal模块中的Decimal方法(精度高)1.2 四舍五入后取整2. 非精确的舍入2.1 print("%.xf" % a)形式2.2 format()形式2.3 round...

Your_Raymond的博客 1万+
上一篇: 程序运行慢?你怕是写的假 Python
下一篇: Python干货:sorted()函数:列表元素排序
pythonputao
博客等级 码龄6年 60粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值