Python中的十进制函数是什么?

对于十进制浮点算术,python提供了十进制模块。该模块本身具有数百个功能,可帮助有效处理十进制计算。我们将研究有关此主题的重要且使用最广泛的主题。

相比()

此函数比较十进制数字。如果1st Decimal参数大于2nd,则返回1;如果1st Decimal参数小于2nd,则返回-1;如果两者相等,则返回0。

示例

import decimal

val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(2.61)

# compare decimals
print("The result is : ",val1.compare(val2))

# resetting the values
val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(-2.6)

# compare decimals
print("The result is : ",val1.compare(val2))

# resetting the values
val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(2.6)

# compare decimals
print("The result is : ",val1.compare(val2))

输出结果

运行上面的代码给我们以下结果-

The result is : -1
The result is : 1
The result is : 0

max()和 min()

他们分别找到两个十进制数的最大值和最小值。

示例

import decimal

val1 = decimal.Decimal(2.6)
val2 = decimal.Decimal(2.61)

# compare decimals
print("The max value is : ",round(val1.max(val2),2))
print("The min value is : ",round(val1.min(val2),2))

输出结果

运行上面的代码给我们以下结果-

The max value is : 2.61
The min value is : 2.60

getcontext()

通过使用此方法,我们可以更改算术运算的精度。默认精度为28。在下面的示例中,我们执行算术运算,该运算根据getcontext().prec设置的精度显示结果。

示例

from decimal import *
print(Decimal(13) / Decimal(7))

getcontext().prec = 6
print(Decimal(13) / Decimal(7))

getcontext().prec = 10
print(Decimal(13) / Decimal(7))

输出结果

运行上面的代码给我们以下结果-

1.857142857142857142857142857
1.85714
1.857142857

exp()

返回给定数字的(自然)指数函数e ** x的值。

示例

from decimal import *

#Finding e
print(Decimal(1).exp())

#Finding e raised to 2
print(Decimal(2).exp())

#Finding e raised to 4
print(Decimal(4).exp())

输出结果

运行上面的代码给我们以下结果-

2.718281828459045235360287471
7.389056098930650227230427461
54.59815003314423907811026120

as_integer_ratio()

有时我们需要整数,这些整数的除法为我们处理的小数。我们可以使用as_integer_ratio()来获得。

示例

from decimal import *

v = Decimal('2.1834').as_integer_ratio()
print(v)

v = Decimal('-1.92').as_integer_ratio()
print(v)

输出结果

运行上面的代码给我们以下结果-

(10917, 5000)
(-48, 25)

ln()和log10()

我们可以使用这些函数来计算自然对数(底数为e)以及底数为10的对数。我们提供需要对数的十进制值。

示例

from decimal import *

ln_val = Decimal('2.1').ln()
print(ln_val)

log_val = Decimal('2.1').log10()
print(log_val)

输出结果

运行上面的代码给我们以下结果-

0.7419373447293773124826065257
0.3222192947339192680072441618

fma(a,b)

这是一个特殊功能,称为融合乘法和加法。提供的小数乘以第一个参数a,然后将结果添加到第二个参数b。

示例

from decimal import *

# Same as (2.1*2)+5
fma_val = Decimal(2.1).fma(2,5)
print(fma_val)

# Same as (8.1*3)+5
fma_val = Decimal(8.1).fma(3,5)

print(fma_val)
re class="prettyprint notranslate" >

输出结果

运行上面的代码给我们以下结果-

9.200000000000000177635683940
29.29999999999999893418589636