📅  最后修改于: 2020-04-16 00:44:03             🧑  作者: Mango
Python在其定义中提供了某些使用“ decimal”模块执行更快的十进制浮点算术的方法。
小数的重要函数:
1. sqrt():此函数计算十进制数字的平方根。
2. exp():此函数返回十进制数字的e ^ x(指数)。
# Python代码演示sqrt()和exp()的工作原理
# 导入“decimal"模块以使用十进制函数
import decimal
# 使用exp()计算十进制数的指数
a = decimal.Decimal(4.5).exp()
# 使用sqrt()计算十进制数的平方根
b = decimal.Decimal(4.5).sqrt()
# 打印指数
print ("小数的指数是 : ",end="")
print (a)
# 打印平方根
print ("十进制数的平方根是 : ",end="")
print (b)
输出:
小数的指数是 : 90.01713130052181355011545675
十进制数的平方根是 : 2.121320343559642573202533086
4. log10():此函数用于计算十进制数字的log(以10为底)。
# Python代码演示ln()和log10()的工作
# 导入“decimal"模块以使用十进制函数
import decimal
# 使用ln()计算十进制数的自然对数
a = decimal.Decimal(4.5).ln()
# 使用sqrt()计算十进制数的log10
b = decimal.Decimal(4.5).log10()
# 打印自然对数
print ("十进制数的自然对数为 : ",end="")
print (a)
# 打印日志10
print ("十进制数的对数(以10为底)为 : ",end="")
print (b)
输出:
十进制数的自然对数为 : 1.504077396776274073373258352
十进制数的对数(以10为底)为 : 0.6532125137753436793763169118
5. as_tuple():返回十进制数, 包含三个参数,正负号(0表示+,1表示-),数字和指数值的元组形式。
6. fma(a,b):此“ fma”代表融合的乘法和加法。它根据参数中的数字计算(num * a)+ b。此函数不对(num * a)进行四舍五入。
范例:
decimal.Decimal(5).fma(2,3) --> (5*2)+3 = 13
# Python代码演示as_tuple()和fma()的工作方式
# 导入“decimal"模块以使用十进制函数
import decimal
# 使用as_tuple()返回十进制数作为元组
a = decimal.Decimal(-4.5).as_tuple()
# 使用fma()计算融合的乘法和加法
b = decimal.Decimal(5).fma(2,3)
# 打印元组
print ("十进制数字的元组形式为 : ",end="")
print (a)
# 打印融合倍数和加法
print ("十进制数的相乘和加法是 : ",end="")
print (b)
输出:
十进制数字的元组形式为 : DecimalTuple(sign=1, digits=(4, 5), exponent=-1)
十进制数的相乘和加法是 : 13
7. compare():该函数用于比较十进制数字。如果第一个Decimal参数大于第二个,则返回1;如果第一个 Decimal参数小于第二个,则返回-1;如果两者相等,则返回0。
8. compare_total_mag():比较十进制数字的抽象数值。如果第一个 Decimal参数大于第2个(忽略符号),则返回1;如果第一个 Decimal参数小于第2个(忽略符号),则返回-1;如果两者相等(忽略符号),则返回0。
# Python代码演示compare()和compare_total_mag()的工作原理
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(9.53)
# 初始化十进制数
b = decimal.Decimal(-9.56)
# 使用compare()比较十进制数
print ("使用compare()进行比较的结果是 : ",end="")
print (a.compare(b))
# 使用compare_total_mag()比较十进制数
print ("使用compare_total_mag()进行比较的结果是: ",end="")
print (a.compare_total_mag(b))
输出:
使用compare()进行比较的结果是: 1
使用compare_total_mag()进行比较的结果是 : -1
9. copy_abs():此函数输出十进制参数的绝对值。
10. copy_negate():此函数输出十进制参数取反。
11. copy_sign():此函数通过从第二个参数复制符号来打印第一个参数。
# Python代码演示copy_abs(),copy_sign()和copy_negate()的工作原理
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(9.53)
# 初始化十进制数
b = decimal.Decimal(-9.56)
# 使用copy_abs()打印绝对值
print ("使用copy_abs()的绝对值为 : ",end="")
print (b.copy_abs())
# 使用copy_negate()打印取反的值
print ("使用copy_negate()的取反值是 : ",end="")
print (b.copy_negate())
# 使用copy_sign()打印符号影响值
print ("使用copy_sign()的符号影响值是 : ",end="")
print (a.copy_sign(b))
输出:
使用copy_abs()的绝对值为 : 9.5600000000000004973799150320701301097869873046875
使用copy_negate()的取反值是 : 9.5600000000000004973799150320701301097869873046875
使用copy_sign()的符号影响值是 : -9.5299999999999993605115378159098327159881591796875
12. max():此函数计算两个十进制数的最大值。
13. min():此函数计算两个小数的最小值。
# Python代码演示min()和max()的工作方式
# 导入“decimal"模块以使用十进制函数
import decimal
# 初始化十进制数
a = decimal.Decimal(9.53)
# 初始化十进制数
b = decimal.Decimal(7.43)
# 打印两个值的最小值
print ("两个值的最小值 : ",end="")
print (a.min(b))
# 打印两个值的最大值
print ("两个数的最大值为 : ",end="")
print (a.max(b))
输出:
两个值的最小值 : 7.429999999999999715782905696
两个数的最大值为 : 9.529999999999999360511537816