Opened 5 years ago
Last modified 5 years ago
#32118 closed New feature
db.models.FloatField name misleading — at Version 1
| Reported by: | Michael | Owned by: | nobody |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 3.1 |
| Severity: | Normal | Keywords: | Fields |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description (last modified by )
In the DB world the difference between float (4 bytes) and double (8 bytes) is arguably common. However Django calls a double a float. I would imagine it would be very hard to add a DoubleField and make FloatField the normal 4 byte float due to legacy. Although not ideal how about adding a SmallFloatField, or RealField, or some other name to allow users to create a 4 byte floats, or raise awareness to when they use a FloarField, it may not be what they expect?
PostgresQL calls 4 byte float a real, and a 8 byte float a double precision:
https://www.postgresql.org/docs/9.1/datatype-numeric.html
Mysql calls 4 byte float a float, and a 8 byte float a double:
https://dev.mysql.com/doc/refman/8.0/en/floating-point-types.html
Note: People cite "space is cheap", but this is not always the case, and depending on the situation there are real practical savings.