Should I store a field PRICE as an int or as a float int the database?

后端 未结 4 834
小蘑菇
小蘑菇 2021-02-20 03:21

In a previous project, I noticed that the price field was being stored as an int, rather than as a float. This is done by multiplying the actual value by 100, the reason being

4条回答
  •  春和景丽
    2021-02-20 03:48

    Interesting question.

    I wouldn't actually choose float in the mysql environment. Too many problems in the past with precision with that datatype.

    To me, the choice would be between int and decimal(18,4).

    I've seen real world examples integers used to represent floating point values. The internals of JD Edwards datatables all do this. Quantities are typically divided by 10000. While I'm sure it's faster and smaller in-table, it just means that we're always having to CAST the ints to a decimal value if we want to do anything with them, especially division.

    From a programming perspective, I'd always prefer to work with decimal for price ( or money in RDBMSs that support it ).

提交回复
热议问题