there is an implicit type casting thats taking place at the left hand side of the operator for only one time. Example;
x=x+1.5 // error
x+=1.5+3.5; "+" in the right hand side adds up 1.5 and 3.5,, "+" doesnt work !!(mathematics), all it does is a type casting !!
you check the difference between statements "x=3.5+4.5" x is an int and "x+=3.5+4.5" you will know it better , whats happening at the left hand side .
and also analyse what would a compiler do in this case for better understanding.
x is int;
x=1.5+4.55555555555555555555555555555555555555555555;
compiler would be so confused !! how many type castings !!.
so implicit type casting is done at left hand side for only one time, ;
hope you have got my point, thanks for posting this question, IT makes me think a llot !!!