Float - gwenn/hypomnemata GitHub Wiki
Go test
float f = 18632227f;
System.out.println("f = " + f); // f = 1.8632228E7
int i = Float.floatToIntBits(f);
System.out.printf("%d\n", i); // 1267607314
System.out.println(Integer.toBinaryString(i)); // 1001011100011100010011100010010
f = 18632228f;
System.out.println("f = " + f); // f = 1.8632228E7
i = Float.floatToIntBits(f);
System.out.printf("%d\n", i); // 1267607314
System.out.println(Integer.toBinaryString(i)); // 1001011100011100010011100010010
double d = 18632227d;
System.out.println("d = " + d); // d = 1.8632227E7
long l = Double.doubleToLongBits(d);
System.out.printf("%d\n", l); // 4715766760580579328
System.out.println(Long.toBinaryString(l)); // 100000101110001110001001110001000110000000000000000000000000000
d = 18632228d;
System.out.println("d = " + d); // d = 1.8632228E7
l = Double.doubleToLongBits(d);
System.out.printf("%d\n", l); // 4715766760849014784
System.out.println(Long.toBinaryString(l)); // 100000101110001110001001110001001000000000000000000000000000000
public static void main(String[] args) {
int i = 10_000_000;
float f;
while (true) {
f = i;
if (((int)f) != i) {
System.out.printf("i = %d, f = %f", i, f);
break;
} else if (i > 20_000_000) {
break;
}
i++;
}
}
// i = 16777217, f = 16777216.000000