使用十进制模块在Python中设置精度
Python中的小数模块可用于设置数字的精确值。 Decimal 模块的默认值最多为 28 位有效数字。但是,可以使用getcontext().prec方法更改它。
下面的程序通过计算 2 个数字的平方根到默认位数来演示十进制模块的使用。
Python3
# Import required modules
import decimal
# Create decimal object
ob1 = decimal.Decimal(5).sqrt()
ob2 = decimal.Decimal(7).sqrt()
# Display value
print(ob1)
print(ob2)
Python3
# Import required module
import decimal
# Set precision to a fixed value
decimal.getcontext().prec = 6
# Create Decimal object
ob1 = decimal.Decimal(5).sqrt()
ob2 = decimal.Decimal(7).sqrt()
# Display value up to 6 significant figures
print(ob1)
print(ob2)
输出
2.236067977499789696409173669
2.645751311064590590501615754
我们可以将精度设置为 n 个有效数字。 decimal.getcontext().prec必须在全局范围内声明,这样所有的小数对象都可以有 n 个有效数字。
蟒蛇3
# Import required module
import decimal
# Set precision to a fixed value
decimal.getcontext().prec = 6
# Create Decimal object
ob1 = decimal.Decimal(5).sqrt()
ob2 = decimal.Decimal(7).sqrt()
# Display value up to 6 significant figures
print(ob1)
print(ob2)
输出
2.23607
2.64575