Opened 4 years ago

Last modified 4 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 Michael)

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.

Change History (1)

comment:1 by Michael, 4 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top