Python 提供了三种浮点值:内置的 float 和 complex 类型,以及标准库的 decimal.Decimal 类型。
float 类型存储双精度浮点数。具体取值范围取决于构建python的c编译器。由于精度有限,等式比较是不可靠的。
如果需要高精度,可以使用decimal.decimal模块的十进制数。该类型可以准确表示循环小数,但处理速度较慢,适合金融计算。
简单函数比较floatS是否相等:
def equal_float(a,b):
return abs(a-b)<=sys.float_info.epsilon
其中 sys.float_info.epsilon 是机器可以区分的两个浮点数之间的最小差异
math模块提供了许多可用于floatS的函数:
math.pi:常量3.1415926
math.pow(x,y):x的y次幂(浮点值)
……………….
使用math时先用import math导入该模块
十进制数字
十进制模块可以提供固定的十进制数,精度可以自己确定。要创建 Decimal,首先使用 import decimal 导入模块。
十进制数是使用 decimal.Decimal() 函数创建的,该函数接受整数或字符串作为参数,但不接受浮点数。如果将字符串用作参数,则可以使用简单的十进制表示或指数表示,并且 decimal.Decimal 的精确表示允许可靠的相等比较。
(从python3.1开始,使用decimal.Decimal from-float()函数将float转换为十进制数,取一个float类型数作为参数,返回最接近的decimal.Decimal到float)
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
内容反馈