Maybe I'm missing something, but I don't see how it could be an integer? We do promotion into doubles or longs when setting `value`.

Same comment goes for 2 lines down.