'Python integer formatting
I was wondering if it's possible to use two format options together when formatting integers.
I know I can use the bellow to include zero places
varInt = 12
print(
"Integer : " +
"{:03d}".format(varInt)
)
To get the output "Integer : 012"
I can use the following to include decimal places
varInt = 12
print(
"Integer : " +
"{:.3f}".format(varInt)
)
To get the output "Integer : 12.000"
But is it possible to use them both together to get the output "Integer : 012.000"
Solution 1:[1]
varInt = 12
print(
"Integer : " +
"{:07.3f}".format(varInt)
)
Outputs:
Integer : 012.000
The 7 is total field width and includes the decimal point.
Solution 2:[2]
Not only can you specify the minimum length and decimal points like this:
"{:07.3f}".format(12)
You can even supply them as parameters like this:
"{:0{}.{}f}".format(12, 7, 3)
Solution 3:[3]
Sure, the number at the beginning is the minimum length of the outputted string, so include the decimal part and the decimal point as well.
>>> "{:07.3f}".format(12)
'012.000'
Solution 4:[4]
For anyone who came here to format numbers in f string:
>>> a = 12
>>> f"{a:07.3f}"
'012.000'
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Andy |
Solution 2 | John La Rooy |
Solution 3 | |
Solution 4 | Shinsuke Hamasho |