The to_internal_value method coerces data to an int, so when a float/decimal is passed, the int value is saved, rather than raising an exception.