Python保留小数的方法

您所在的位置:网站首页 Python保留两位小数表达 Python保留小数的方法

Python保留小数的方法

2024-06-14 22:52| 来源: 网络整理| 查看: 265

因总是忘记保留小数的方法,故在此做个总结。

方法一:字符串格式化

>>> print('%.2f' % 1.255) 1.25 # 补充左侧补0 >>> print('%03d' % 7) 007

方法二:format函数方法 format函数有两种写法 1、使用占位符(需注意占位符和冒号不能丢),此方法可以一次输出多个

>>> print('{:.2f}, {:.3f}'.format(1.256, 1.2635)) 1.26, 1.264 # 左侧补0 >>> print('{:02d}'.format(5)) 05

2、不使用占位符,此方法只能一次输出一个,并且需要格式化的数字在前

>>> print(format(1.235, '.2f')) 1.24 # 左侧补0 >>> print(format(9, '05d')) 00009

方法三:round函数 round函数返回浮点数的四舍五入值,第一个参数是浮点数,第二个参数是保留的小数位数,不写默认保留到整数;

>>> print(round(1.2345, 3)) 1.234 >>> print(round(1.23456, 3)) 1.235 >>> print(round(2.5)) 2 >>> print(round(3.5)) 4

但round函数有坑,在Python3.5的文档中:“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(3.332, 2) # 3.332保留两位小数,3.332距离3.33更近(0.002),距离3.34较远(0.008),因此保留到3.33 3.33 >>> round(3.337, 2) # 3.337保留两位小数,3.337距离3.34更近(0.003),距离3.33较远(0.007),因此保留到3.34 3.34

另外,在机器中浮点数不一定能精确表达,“换算成1和0后,可能是无限位数的,而机器会进行截断处理”,因此实际在机器中的浮点数与我们看到的并不完全一致,在机器中保存的比实际的数字大一点或者小一点,而round函数是保留到离上一位更近的一端,因此如果对精确度要求高的话,不建议使用。

>>> round(2.265, 2) 2.27 >>> round(2.275, 2) 2.27 >>> round(2.285, 2) 2.29

方法四:decimal模块 decimal意思为十进制,这个模块提供了十进制浮点数运算支持,可以给Decimal传递整型或字符串参数,但不能是浮点数数据,因为浮点数本身就不准确。该模块遵循四舍五入

>>> from decimal import Decimal >>> Decimal('1.23456').quantize(Decimal('0.000')) Decimal('1.235') >>> Decimal(123).quantize(Decimal('0.0')) Decimal('123.0')


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3