Table of Contents

## How to count decimal places in Python?

In Python, we can represent decimal values using the `float`

datatype. The decimal point divides the integer from the fractional part. The maximum value a `float`

object can have is 1.8 x 10^308.

In this article, we will discuss how to count the decimal places in Python. We will take a float value and return the total number of digits after the decimal point.

### Using the `decimal`

library to count decimal places in Python

The `decimal`

library allows us to work with `float`

values. We can convert these values to objects of the `Decimal`

class from this library. There are many methods associated with this class that can perform various functions on these values.

The `as_tuple()`

function is used to return the information about the floating value in a tuple. It returns the sign of the number (positive or negative), the digits in the number, and the exponent value.

The `exponent`

attribute can be used to return the exponent value from this tuple. This exponent value is the same as the number of digits in the decimal place with a negative sign. We can use the `abs()`

function to get the absolute value of this attribute, removing the negative sign.

See the code below.

1 2 3 4 5 |
import decimal d = decimal.Decimal('7.856') print(abs(d.as_tuple().exponent)) |

**Output:**

In the above example, we use the `decimal.Decimal()`

constructor to create an object of the `Decimal`

class. We get the exponent value of this object using the `as_tuple()`

function. Its absolute value is displayed using the `abs()`

function.

### Using the `len()`

and `split()`

function to count decimal places in Python

The `len()`

and `split()`

function work with string objects. The former is used to return the length of the given string and the latter can split a given string into a list of substrings based on some character.

We can use these functions together to count decimal places in Python.

First, we will convert the float value to a string using the `str()`

function. Then we will split the list based on the `.`

character to return two substrings. The second substring contains the decimal part and its length can be calculated using the `len()`

function.

For example,

1 2 3 4 5 |
a = 5.758 n = len(str(a).split(".")[1]) print(n) |

**Output:**

## Further reading:

### Using the `find()`

function to count decimal places in Python

The `find()`

function is used to return the index of the first occurrence of an element in a string. We can use it with string slicing to count decimal places in Python.

We can slice string using the square brackets (`[]`

). In these brackets, we can specify the start, end, and step values for the string slicing. We can specify the step as `-1`

to reverse the string. We can convert a float value to a string using the `str()`

function and reverse it using this method.

After reversing the string, the decimal part comes in front. We can find the occurrence of the decimal point using the `find()`

function. The index of the decimal point will be the same as the total decimal places.

This logic is implemented in the code below.

1 2 3 4 5 |
a = 7.856 n = str(a)[::-1].find('.') print(n) |

**Output:**

## Conclusion

To conclude, we discussed several methods to count decimal places in Python. In our first method, we used the `Decimal`

class from the `decimal`

library. We can use the `as_tuple()`

function to get the exponent value from the objects of this class that represent the decimal places.

The other two methods involved converting the float value to a string. In the first method, we split the string into the real and fractional parts using the `split()`

function and found the decimal places using the `len()`

function on the fractional part.

In the final method, we reversed the number using string slicing and found the occurrence of the decimal point which corresponds to the total decimal places.