Python math.modf() Method



The Python math.modf() method returns the fractional and integer parts of a numeric value as a tuple of size 2. This Both parts have the same sign as the specified value. The integer part is retrieved as a float.

The first part of the tuple is the fractional part, whereas the second part is an integer part.

Note: This method is not accessible directly, so we need to import math module. Then we need to call this method using math static object.

Syntax

Following is the syntax of Python math.modf() method −

math.modf(x)

Parameters

  • x − This is a numeric expression.

Return Value

This method returns the fractional and integer parts of x in a tuple of size 2. Both parts have the same sign as x. The integer part is retrieved as a float.

Example

If we pass a positive number as an argument to this method, it returns a tuple of size 2 containing positive values.

The following example shows the usage of the Python math.modf() method. Here we are passing positive numbers as an argument to the modf() method.

# This will import math module
import math   
print ("math.modf(100.12) : ", math.modf(100.12))
print ("math.modf(100.72) : ", math.modf(100.72))
print ("math.modf(math.pi) : ", math.modf(math.pi))

When we run above program, it produces following result −

math.modf(100.12) :  (0.12000000000000455, 100.0)
math.modf(100.72) :  (0.71999999999999886, 100.0)
math.modf(math.pi) :  (0.14159265358979312, 3.0)

Example

If we pass a negative number as an argument to this method, it returns a tuple of size 2 containing negative values.

In the example given below we have created a tuple and a list of elements. Then the modf() method is used to retrieve the fractional and integer part of the tuple and list elements at the specified index:

# importing the math module
from math import modf
Tuple = (-76.43, -98.214, 35.46, 93.328)
List = [74.28, -48.38, -29.48, 95.34, 957.45]
# Using modf() method on tuple elements
print("modf() on the first element of Tuple is: ", modf(Tuple[0]))
print("modf() on the third element of Tuple is: ", modf(Tuple[2]))
# Using modf() method on list elements
print("modf() on the third element of list is: ", modf(List[2]))
print("modf() on the fifth element of list is: ", modf(List[4]))

While executing the above code we get the following output −

modf() on the first element of Tuple is:  (-0.4300000000000068, -76.0)
modf() on the third element of Tuple is:  (0.46000000000000085, 35.0)
modf() on the third element of list is:  (-0.4800000000000004, -29.0)
modf() on the fifth element of list is:  (0.4500000000000455, 957.0)

Example

In here, two float numbers are provided as an argument to the modf() method. Then the fractional part of these numbers is added as it is stored in the 0th index of both the tuple. The result is then retrieved.

# importing the math module
import math
# modf() method to add fractional part
num1 = math.modf(72.21)
num2 = math.modf(3.2)
# printing the result
print('The addition of the given fractional part is:', num1[0]+num2[0])

Following is an output of the above code −

The addition of the given fractional part is: 0.4099999999999939

Example

If we pass anything other than a float value to this method, it returns a type error.

In the example given below a string value is passed as an argument to the modf() method:

# importing the math module
import math
# Using modf() method
print("The output is: ", math.modf('63.29'))

Output of the above code is as follows −

Traceback (most recent call last):
  File "C:\Users\Lenovo\Desktop\untitled.py", line 4, in <module>
    print("The output is: ", math.modf('63.29'))
TypeError: must be real number, not str
python_maths.htm
Advertisements