English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python中的十进制函数

En Python, hay un módulo llamado Decimal, que se utiliza para ejecutar algunas tareas relacionadas con el punto flotante decimal. Este módulo proporciona operaciones de coma flotante con redondeo correcto.

Primero, necesitamos importar el módulo Decimal estándar.

import decimal

En esta sección, veremos algunas funciones importantes del módulo Decimal.

función raíz cuadradasqrt()y la función exponencialexp()

Estesqrt()método se utiliza para calcular la raíz cuadrada de un objeto de tipo decimal. Y estaexp()el método devuelve el valor de e ^ x para x dado como número decimal.

Métodos de máximo y mínimo

#Ejecutar métodos sqrt() y exp()
import decimal
my_dec = decimal.Decimal(25.36)
print(my_dec)
#Encontrar la raíz cuadrada del número decimal
print('Raíz cuadrada es: ' + str(my_dec.sqrt())
#Encontrar e^x para el número decimal
print('e^x es: ' + str(my_dec.exp())

Resultado de salida

25.3599999999999994315658113919198513031005859375
Raíz cuadrada es: 5.035871324805668565859161094
e^x es: 103206740212.7314661465187086

función logarítmica

En el módulo decimal hay algunas funciones logarítmicas. Aquí, discutiremos dos de ellas. La primera esln()método。Este método se utiliza para encontrar el logaritmo natural de un número decimal.

Otra方法是log10método ()。Este método se utiliza para encontrar el valor logarítmico de base10el valor logarítmico de base.

Métodos de máximo y mínimo

#Ejecutar ln() y log10métodos ()
import decimal
my_dec = decimal.Decimal(25.36)
print(my_dec)
#Encontrar el valor logarítmico con base e
print('ln(x) es: ') + str(mi_dec.ln()))
#Encontrar valor logarítmico con base 10
print('log(x) es: ') + str(mi_dec.log10))

Resultado de salida

25.3599999999999994315658113919198513031005859375
ln(x) es: 3.233173129569025152000878282
log(x) es: 1.404149249209695070459909761

as_tuple() yfma()Método

El método as_tuple() se utiliza para representar el decimal como una tupla contreselementos.elementos simbólicos, dígitosyen el campo de signo, cuando los números son 0, representa el decimal devalores;cuando los números sonrepresenta1negativospara números

Estefma()llamadométodo de Multiplicación y Adición Combinada。Si utilizamos fma(x, y), calculará (número * x)+ y. En este caso, (número * x) parte no se redondeará.

Métodos de máximo y mínimo

#Ejecutar métodos as_tuple() y fma()
import decimal
my_dec1 = decimal.Decimal(5.3)
print(my_dec1)
my_dec2 = decimal.Decimal(-9.23)
print(my_dec2)
#Mostrar decimal como tupla
print('\nmi_dec1 como tupla: ' + str(my_dec1.as_tuple()))
print('\nmi_dec2 como tupla: ' + str(my_dec2.as_tuple()))
#Ejecutar Multiplicación y Adición Combinada
print('\n(x*5)+8 es: ' + str(my_dec1.fma(5, 8))

Resultado de salida

5.29999999999999982236431605997495353221893310546875
-9.230000000000000426325641456060111522674560546875
my_dec1 como tupla: DecimalTuple(sign=0, dígitos=(5, 2, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 2, 2, 3, 6, 4, 
3, 1, 6, 0, 5, 9, 9, 7, 4, 9, 5, 3, 5, 3, 2, 2, 1, 8, 9, 3, 3, 1, 0, 5, 4, 6, 8, 7, 5), exponente=-50)
my_dec2 como tupla: DecimalTuple(sign=1, dígitos=(9, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 2, 6, 3, 2, 5,
 6, 4, 1, 4, 5, 6, 0, 6, 0, 1, 1, 1, 5, 2, 2, 6, 7, 4, 5, 6, 0, 5, 4, 6, 8, 7, 5), exponente=-48)
(x*5)+8 es: 34.49999999999999911182158030

Estecompare()Método

Este método de comparación se utiliza para comparar dos números decimales. Cuando los números son iguales, devolverá 0, de lo contrario, cuando el primer número es mayor, devolverá+1,y cuando el primer parámetro es menor, devolverá-1。

Métodos de máximo y mínimo

#Ejecutar método compare()
import decimal
#Comparar cuando ambos son iguales
print('Comparar valor: ') + -5.3).compare(decimal.Decimal(',')),-5.3))))
#Comparar cuando el primero es menor
print('Comparar valor: ') + -5.3).compare(decimal.Decimal(',')),9.26))))
#Comparar cuando el primero es mayor
print('Comparar valor: ') + -5.3).compare(decimal.Decimal(',')),-13.25))))

Resultado de salida

Comparar valor: 0
Comparar valor: -1
Comparar valor: 1

Algunas funciones de copia

Hay varias formas diferentes de copiar un número decimal a otro objeto decimal. El primer método es copy_abs(). Se utiliza para obtener el valor absoluto de un número decimal. El segundo método es copy_negate(), que se utiliza para copiar un número decimal después de negar el número real. La tercera función es copy_sign(). Este método imprime el primer argumento mediante el signo obtenido del segundo parámetro.

Métodos de máximo y mínimo

#Ejecutar copy_abs(), copy_negate() y copy_sign()
import decimal
my_dec = decimal.Decimal(-25.36)
print(my_dec)
#Copiar el valor absoluto
temp_dec = my_dec.copy_abs()
print('Absoluto es: ' + str(temp_dec))
#Copiar el valor negativo
my_dec = decimal.Decimal(7.26)
temp_dec = my_dec.copy_negate()
print('Negativo de 7.26 es: ' + str(temp_dec))
#Copiar el valor de signo del segundo argumento al primero
my_dec = decimal.Decimal(-25.36)
temp_dec = my_dec.copy_sign(decimal.Decimal(12.5))
print('Copiar el signo del segundo argumento: ' + str(temp_dec))

Resultado de salida

-25.3599999999999994315658113919198513031005859375
Absoluto es: 25.3599999999999994315658113919198513031005859375
Negativo de 7.26 es: -7.2599999999999997868371792719699442386627197265625
Copiar el signo del segundo argumento: 25.3599999999999994315658113919198513031005859375

Métodos de máximo y mínimo

Los métodos de máximo y mínimo son dos métodos simples. Se utilizan respectivamente para encontrar el valor máximo o mínimo entre dos números.

Métodos de máximo y mínimo

#Ejemplo de código
import decimal
my_dec1 = decimal.Decimal(5.3)
print(my_dec1)
my_dec2 = decimal.Decimal(-9.23)
print(my_dec2)
#Mostrar Mínimo y Máximo
print('Mínimo: ' + str(my_dec1.min(my_dec2))
print('Máximo: ' + str(my_dec2.max(my_dec1))

Resultado de salida

5.29999999999999982236431605997495353221893310546875
-9.230000000000000426325641456060111522674560546875
Mínimo: -9.230000000000000426325641456
Máximo: 5.299999999999999822364316060