I have the code
        int twelve = 12;
        int five = 5;
        float y = (float)twelve / 5;
        var e = (float)((float)twelve / (float)five) == y; // true
        var f = ((float)twelve / (float)five) == y; // false
        var g = ((float)twelve / (float)five) == 2.4; // true
        var h = ((float)twelve / (float)five) == 2.4F; // false
        var i = ((float)12 / (float)5) == 2.4F; // true
and I cannot understand why f and h are false.
Can somebody explain what exactly is happening here?
Same Java code seems more predictable
    int twelve = 12;
    int five = 5;
    float y = (float)twelve / 5;
    boolean e = (float)((float)twelve / (float)five) == y; // true
    boolean f = ((float)twelve / (float)five) == y; // true
    boolean g = ((float)twelve / (float)five) == 2.4; // false
    boolean h = ((float)twelve / (float)five) == 2.4F; // true
    boolean i = ((float)12 / (float)5) == 2.4F; // true
