Why does an assignment of the form int = int * double give an error, and an assignment of the form int *= double does not give an error (in Java)?
Example:
public class TestEmp {
    public static void main(String[] args) {
        double e = 10;
        int r = 1; 
        r *= e;
        r = r * e;
        System.out.println("De uitkomst van r :" + r);
    }
}
r *= e is accepted and r = r * e isn't.  Why?
r = r * e gives you an error because the result of r * e is a double so there will be a loss of precision when you store it in an int.
r *= e does not give you an error because it is syntactic sugar for r = (int)(r * e) (source).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With