# Convert Decimal fraction to binary in Python

In this tutorial, we will show you how to convert decimal fraction to binary in Python.

**Note:**

- Here, we are going to convert a decimal number into its equivalent binary number up to k-precisions(number of digits after the decimal point).
**k**will be given by the user as an input in addition to the decimal number.

## Python Program to Convert Decimal fraction to binary

**This program contains 3 parts.**

- Converting an integral part of decimal to binary equivalent.
- Converting the fraction part of decimal to binary equivalent.
- Combining both the integral and fraction part of the binary number.

**Algorithm:**

**1. Converting an integral part of decimal to the binary equivalent**

- Divide the integer by 2 and keep track of the remainder.
- Divide the quotient by 2 until you get quotient as zero.
- Finally, stored remainders are reversed to get the equivalent binary number.

**2. Converting the fraction part of decimal to the binary equivalent**

- Multiply the fraction part of the decimal number by 2.
- Store the integer part of the resultant decimal number.
- Repeat step 1 and step 2 for k(precisions after decimal point) times.

**3. Then combine both the integral and fraction part of the binary.**

Now, we have a look at the implementation of the above algorithm.

def decToBinConversion(no, precision): binary = "" IntegralPart = int(no) fractionalPart = no- IntegralPart #to convert an integral part to binary equivalent while (IntegralPart): re = IntegralPart % 2 binary += str(re) IntegralPart //= 2 binary = binary[ : : -1] binary += '.' #to convert an fractional part to binary equivalent while (precision): fractionalPart *= 2 bit = int(fractionalPart) if (bit == 1) : fractionalPart -= bit binary += '1' else : binary += '0' precision -= 1 return binary no = float(input()) k = int(input()) print("Binary Equivalent:",decToBinConversion(no,k))

**Sample output 1:**

38.67 3 Binary Equivalent: 100110.101

**Sample output 2:**

8.45 2 Binary Equivalent: 1000.01

I hope that this tutorial has taught you something useful.

## Leave a Reply