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