Python em sua definição fornece certos métodos para realizar aritmética de ponto flutuante decimal mais rápida usando o módulo 'decimal'.
Operações importantes em decimais
1. quadrado() : - Esta função calcula o raiz quadrada do número decimal.
2. exp() : - Esta função retorna o e ^ x (expoente) do número decimal.
java matemática.randomPython
# Python code to demonstrate the working of # sqrt() and exp() # importing 'decimal' module to use decimal functions import decimal # using exp() to compute the exponent of decimal number a = decimal.Decimal(4.5).exp() # using sqrt() to compute the square root of decimal number b = decimal.Decimal(4.5).sqrt() # printing the exponent print ('The exponent of decimal number is : 'end='') print (a) # printing the square root print ('The square root of decimal number is : 'end='') print (b)
Saída:
The exponent of decimal number is : 90.01713130052181355011545675
The square root of decimal number is : 2.121320343559642573202533086
3.ln() : - Esta função é usada para calcular logaritmo natural do número decimal.
4.log10() : - Esta função é usada para calcular log(base 10) de um número decimal.
# Python code to demonstrate the working of # ln() and log10() # importing 'decimal' module to use decimal functions import decimal # using ln() to compute the natural log of decimal number a = decimal.Decimal(4.5).ln() # using sqrt() to compute the log10 of decimal number b = decimal.Decimal(4.5).log10() # printing the natural logarithm print ('The natural logarithm of decimal number is : 'end='') print (a) # printing the log10 print ('The log(base 10) of decimal number is : 'end='') print (b)
Saída:
The natural logarithm of decimal number is : 1.504077396776274073373258352
The log(base 10) of decimal number is : 0.6532125137753436793763169118
5.as_tuple() :- Retorna o número decimal como tupla contendo Sinal de 3 argumentos (0 para + 1 para -) dígitos e valor do expoente .
6.fma(ab) :- Este 'fma' significa fundido multiplicar e adicionar . Ele calcula (num*a)+b dos números no argumento. Sem arredondamento de (num*a) ocorre nesta função.
Exemplo :
decimal.Decimal(5).fma(23) --> (5*2)+3 = 13
# Python code to demonstrate the working of # as_tuple() and fma() # importing 'decimal' module to use decimal functions import decimal # using as_tuple() to return decimal number as tuple a = decimal.Decimal(-4.5).as_tuple() # using fma() to compute fused multiply and addition b = decimal.Decimal(5).fma(23) # printing the tuple print ('The tuple form of decimal number is : 'end='') print (a) # printing the fused multiple and addition print ('The fused multiply and addition of decimal number is : 'end='') print (b)
Saída:
The tuple form of decimal number is : DecimalTuple(sign=1 digits=(4 5) exponent=-1)
The fused multiply and addition of decimal number is : 13
7. comparar() :- Esta função é usada para comparar números decimais. Retorna 1 se o 1º argumento decimal for maior que o 2º -1 se o 1º argumento decimal for menor que o 2º e 0 se ambos forem iguais.
8. compare_total_mag() :- Compara a magnitude total dos números decimais. Retorna 1 se o 1º argumento decimal for maior que o 2º (ignorando o sinal) -1 se o 1º argumento decimal for menor que o 2º (ignorando o sinal) e 0 se ambos forem iguais (ignorando o sinal).
Python
# Python code to demonstrate the working of # compare() and compare_total_mag() # importing 'decimal' module to use decimal functions import decimal # Initializing decimal number a = decimal.Decimal(9.53) # Initializing decimal number b = decimal.Decimal(-9.56) # comparing decimal numbers using compare() print ('The result of comparison using compare() is : 'end='') print (a.compare(b)) # comparing decimal numbers using compare_total_mag() print ('The result of comparison using compare_total_mag() is : 'end='') print (a.compare_total_mag(b))
Saída:
The result of comparison using compare() is : 1
The result of comparison using compare_total_mag() is : -1
9. copy_abs() : - Esta função imprime o absoluto valor do argumento decimal.
10. copy_negate() : - Esta função imprime o negação do argumento decimal.
11. copy_sign() : - Esta função imprime o primeiro argumento copiando o sinal do segundo argumento .
# Python code to demonstrate the working of # copy_abs()copy_sign() and copy_negate() # importing 'decimal' module to use decimal functions import decimal # Initializing decimal number a = decimal.Decimal(9.53) # Initializing decimal number b = decimal.Decimal(-9.56) # printing absolute value using copy_abs() print ('The absolute value using copy_abs() is : 'end='') print (b.copy_abs()) # printing negated value using copy_negate() print ('The negated value using copy_negate() is : 'end='') print (b.copy_negate()) # printing sign effected value using copy_sign() print ('The sign effected value using copy_sign() is : 'end='') print (a.copy_sign(b))
Saída:
The absolute value using copy_abs() is : 9.5600000000000004973799150320701301097869873046875
The negated value using copy_negate() is : 9.5600000000000004973799150320701301097869873046875
The sign effected value using copy_sign() is : -9.5299999999999993605115378159098327159881591796875
12. máximo() : - Esta função calcula o máximo de dois números decimais.
13.min() : - Esta função calcula o mínimo de dois números decimais.
# Python code to demonstrate the working of # min() and max() # importing 'decimal' module to use decimal functions import decimal # Initializing decimal number a = decimal.Decimal(9.53) # Initializing decimal number b = decimal.Decimal(7.43) # printing minimum of both values print ('The minimum of two numbers is : 'end='') print (a.min(b)) # printing maximum of both values print ('The maximum of two numbers is : 'end='') print (a.max(b))
Saída:
The minimum of two numbers is : 7.429999999999999715782905696
The maximum of two numbers is : 9.529999999999999360511537816