0

I want to print the length of a float number without trailing zeros using python. examples:

0.001000 >>> I want to get length=5

0.000100 >>> I want to get length=6

0.010000 >>> I want to get length=4

any suggestions?

2 Answers2

0

Try with this:

inp = '0.00100'
len(str(float(inp)))

Output:

This gives the length as 5

All the trailing zeroes will be removed.

Aditya
  • 66
  • 6
  • for numbers with more than 4 zeros, it shows '1e-05' Example: (str(float(0.00001))) >>> '1e-05' (str(float(0.000001))) >>> '1e-06' and then it will calculate the length wrong – Omar Al-khader Dec 15 '21 at 10:47
0

Converting a float to a str will automatically remove tailing zeros:

numbers = [0.0010000, 0.00000000100, 0.010000]

for number in numbers:
    number = '{0:.16f}'.format(number).rstrip("0")
    print(f"Converted to String: {str(number)} - Length: {len(str(number))}")

Results:

Converted to String: 0.001 - Length: 5
Converted to String: 0.000000001 - Length: 11
Converted to String: 0.01 - Length: 4
Cow
  • 2,543
  • 4
  • 13
  • 25
  • for numbers with more than 4 zeros, it shows '1e-05' Example: (str(float(0.00001))) >>> '1e-05' (str(float(0.000001))) >>> '1e-06' and then it will calculate the length wrong – Omar Al-khader Dec 15 '21 at 10:50