Very minor point: Does this work with `+ 0.0`?  That would avoid the conversion from int to float first...