I was trying to convert float value to a fixed length string. I got an unexpected output when the format is greater than %.6
. Sample code and output are below,
public class Test {
public static void main(String[] args) {
float a=10.9f;
System.out.println(String.format("%07.2f", a));
System.out.println(String.format("%09.4f", a));
System.out.println(String.format("%011.6f", a));
System.out.println(String.format("%012.7f", a));
System.out.println(String.format("%013.8f", a));
}
}
Output
0010.90
0010.9000
0010.900000
0010.8999996
0010.89999962
Why am I getting 8999996 & 89999962 instead of 9000000 & 90000000?