Choose a Product Community
Resources

## How to get the number of decimal places in a given number

SOLVED
Frequent Contributor

## How to get the number of decimal places in a given number

Hi,

I have a scenario where I need to get the number of decimal digits after the decimal point. Please refer below ex.

I want a function where I give this number as input and the function should return 4. As there are 4 decimal digits including trailing zeros.

var number = 123.1000;

Kindly someone help.

Thanks,

Karthik K R

5 REPLIES 5
Occasional Contributor

function count_fraction_length()

{

var number_to_string = "123.1000";

var length = number_to_string.length;

var position = number_to_string.indexOf(".")+1;

Log.Message(length-position);

}

You may need to convert duble to string.

Community Hero

Using Python you can do it in very simple way:

def decimals(x):

return len(str(x - int(x))[2:])

Algorithm is the following:

0. Let say: x = 10.1234

1. (x - int(x)) or (x % 1)    ->   remain only floating signs: 0.1234

2. (str(x - int(x))[2:])    ->    convert it into the string beginning after the floating point: "1234"

3. The length of the string is the number of decimals.

P.S. But in some cases you can have a rounding issues... So my solution is far from ideal...

Frequent Contributor

Thanks for the solution.

Frequent Contributor

Thanks baxatob for the code.

Community Hero

It looks like better to use aqConvert.FloatToStr() method and then parse the result using regular expression:

import re

def decimals(yourFloat):

converted_num = aqConvert.FloatToStr(yourFloat)
pattern = re.compile("\.[0-9]*")
res = re.search(pattern, converted_num)
if res is not None:
res = res.group(0)
return len(res[1:])

cancel
Showing results for