1. 数字的舍入
使用round
函数。round 函数返回离它最近的偶数。也就是说,对 1.5 或者 2.5 的舍入运算都会得到 2。
print(round(12.3)) # 12
print(round(1.23, 1)) # 1.2
print(round(1.25, 1)) # 1.2
print(round(1.27, 1)) # 1.3
print(round(127, -1)) # 130
如果只希望输出一定的宽度(也会舍入啊?没明白区别在哪),使用format
。
format(1.23456, '0.2f') # 1.23
format(1.23456, '0.3f') # 1.235
2. 执行精确的浮点数运算
浮点数的一个普遍问题是它们并不能精确的表示十进制数。并且,即使是最简单的数学运算也会产生小的误差。这些错误是由底层 CPU 和 IEEE 754 标准通过自己的浮点单位去执行算术时的特征。由于 Python 的浮点数据类型使用底层表示存储数据,因此你没办法去避免这样的误差。
print(1.2+2.4) # 反正不是3.6...
使用Decimal
模块,再去书里面看。
3. 数字的格式化输出
x = 1234.56789
print(format(x, '0.2f'))
print(format(x, '>10.1f')) # 10位长度右对齐
print(format(x, '<10.1f')) # 10位长度左对齐
print(format(x, '^10.1f')) # 10位长度居中
当指定数字的位数后,结果值会根据 round() 函数同样的规则进行四舍五入后返回。format
同样适用于Decimal
。
- 知乎:怎样才算是精通python
- Python格式化字符串
- Python3.5 协程究竟是个啥
- python多重继承新算法C3介绍
- Python: 你不知道的 super
- python的类变量与实例变量以及__dict__属性
- 详解Python中 __get__和__getattr__和__getattribute__的区别
- Python黑魔法————描述器
- Python中的classmethod和staticmethod有什么具体用途
- 如何理解python装饰器
- 详解python的装饰器
- Python getattribute vs getattr 浅谈
- 你真的理解Python中MRO算法吗?
- 关于python中inspect模块的一些探究
- Python “黑魔法” 之 Meta Classes
- Range对象并不是迭代器