LSL permits integer *= float and evaluates it at run-time, rounding off the result before assigning it to the integer variable. (Arguably it should give a compile-time error of "type mismatch"). Mono compiles it without complaint, but gives a run-time error of "Invalid IL code". The += operator reasonably causes a "type mismatch" compiler error in both LSL and Mono; it's just the *= operator that's different.
default
{
state_entry()
{
integer n = 1;
n *= 1.0;
}
}