Home > Software engineering >  Understanding float formatting
Understanding float formatting

Time:12-05

I have written the following code:

x = 0.01
print(format(x, '0.27f'))
print(format(x, '1.27f'))
print(format(x, '2.27f'))

All the above print statements, are giving below output:

0.010000000000000000208166817

Please help me understand the difference between '0.27f' and '1.27f' and '2.27f'

CodePudding user response:

The first number in the format string is the total width, not the width to the left of the decimal point. It is ignored if there are other factors forcing the representation to be longer, like the 27 places you've requested to the right of the decimal in all 3 examples.

By making the total width large enough you can start to see the difference, e.g.

print(format(x, '30.27f'))
 0.010000000000000000208166817
print(format(x, '31.27f'))
  0.010000000000000000208166817
print(format(x, '32.27f'))
   0.010000000000000000208166817

CodePudding user response:

Try

print(format(x, '100.27f'))

The answer is padding.

  • Related