- Python支持任意大的数字,具体可以大到什么程度仅受内存大小的限制。
- 由于精度的问题,对于实数运算可能会有一定的误差,应尽量避免在实数之间直接进行相等性测试,而是应该以二者之差的绝对值是否足够小作为两个实数是否相等的依据。
- 在数字的算术运算表达式求值时会进行隐式的类型转换,如果存在复数则都变成复数,如果没有复数但是有实数就都变成实数,如果都是整数则不进行类型转换。
>>>0.3 + 0.2 #实数相加
>>>0.4 - 0.1 #实数相减,结果稍微有点偏差
>>> 0.4 - 0.1 == 0.3 #应尽量避免直接比较两个实数是否相等
>>>abs(0.4-0.1 - 0.3) < 1e-6 #这里1e-6表示10的-6次方
第一条语句的值是0.5,第二条则是0.30000000000000004,第三条是False最后一条是True
- Python内置支持复数类型及其运算,并且形式与数学上的复数完全一致
- Python 3.6.x支持在数字中间位置使用单个下划线作为分隔来提高数字的可读性,类似于数学上使用逗号作为千位分隔符。
- 在Python数字中单个下划线可以出现在中间任意位置,但不能出现开头和结尾位置,也不能使用多个连续的下划线
- Python标准库fractions中的Fraction对象支持分数及其运算。
- 标准库fractions和decimal中提供的Decimal类实现了更高精度实数的运算。