Decimal Functions in Python | Set 1 (original) (raw)

Python in its definition provides certain methods to perform faster decimal floating point arithmetic using the module "decimal".
**Important operations on Decimals
**1. sqrt() :- This function computes the **square root of the decimal number.
**2. exp() :- This function returns the **e^x (exponent) of the decimal number.

Python `

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)

`

**Output:

The exponent of decimal number is : 90.01713130052181355011545675
The square root of decimal number is : 2.121320343559642573202533086

**3. ln() :- This function is used to compute **natural logarithm of the decimal number.
**4. log10() :- This function is used to compute **log(base 10) of a decimal number.

Python `

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)

`

**Output:

The natural logarithm of decimal number is : 1.504077396776274073373258352
The log(base 10) of decimal number is : 0.6532125137753436793763169118

**5. as_tuple() :- Returns the decimal number as tuple containing **3 arguments, sign(0 for +, 1 for -), digits and exponent value.
**6. fma(a,b) :- This "fma" stands for fused multiply and add. It computes ****(num*a)+b** from the numbers in argument. **No rounding of (num*a) takes place in this function.
**Example :

decimal.Decimal(5).fma(2,3) --> (5*2)+3 = 13

Python `

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(2,3)

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)

`

**Output:

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. compare() :- This function is used to compare decimal numbers. Returns 1 if 1st Decimal argument is greater than 2nd, -1 if 1st Decimal argument is smaller than 2nd and 0 if both are equal.
**8. compare_total_mag() :- Compares the total magnitude of decimal numbers. **Returns 1 if 1st Decimal argument is greater than 2nd(ignoring sign), -1 if 1st Decimal argument is smaller than 2nd(ignoring sign) and 0 if both are equal(ignoring sign).

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))

`

**Output:

The result of comparison using compare() is : 1
The result of comparison using compare_total_mag() is : -1

**9. copy_abs() :- This function prints the absolute value of decimal argument.
**10. copy_negate() :- This function prints the **negation of decimal argument.
**11. copy_sign() :- This function prints the **first argument by copying the sign from 2nd argument.

Python `

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))

`

**Output:

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. max() :- This function computes the **maximum of two decimal numbers.
**13. min() :- This function computes the **minimum of two decimal numbers.

Python `

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))

`

**Output:

The minimum of two numbers is : 7.429999999999999715782905696
The maximum of two numbers is : 9.529999999999999360511537816