-
-
Notifications
You must be signed in to change notification settings - Fork 7k
Closed
Description
Checklist
- I have verified that that issue exists against the
master
branch of Django REST framework. - I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
- This is not a usage question. (Those should be directed to the discussion group instead.)
- This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
- I have reduced the issue to the simplest possible case.
- I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)
Steps to reproduce
CharField().to_internal_value(0.00001)
Expected behavior
Either a validation error or the returned value being exactly '0.00001'.
Actual behavior
The returned value is '1e-05' due to float formatting in the cast.
Something similar would also happen with floats with a lot of decimals, since python will not cast into a string with more than 16 decimals.
Being lenient and accepting integers as a valid input for a CharField is fine, but accepting floats causes this problem.
This is a corner case, but I think it should be a configurable behavior.
I also couldn't find anything documenting this behavior other than the pull request that added it. #4380
Metadata
Metadata
Assignees
Labels
No labels