【问题标题】:What MySQL type is most suitable for "price" column?什么 MySQL 类型最适合“价格”列?
【发布时间】:2010-12-09 10:41:49
【问题描述】:

我在products 表中有一个price 列。

我想知道哪种 MySQL 类型最适合本专栏。是DECIMALFLOAT,还是别的什么?

例如,价格可以是:139.994014.5(小数点后两位,如商店)。

请指教。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    DECIMAL 因为十进制值被精确存储。例如。 DECIMAL(10, 2) 非常适合不高于 99999999,99 的价格。 MySQL Docs reference

    【讨论】:

    • 虽然十进制更合适,但整数表现更好。只需将金额乘以 100 并将值存储为美分即可。
    • 比你的数字大怎么办?
    • 我使用 DECIMAL(10, 2): 123,33.00 和格式 number_format($price, 0 , '.', ',') 现在在表单编辑和保存数据时显示 123,33只有 123 个。
    【解决方案2】:

    字段类型“十进制”效果最好。喜欢:

    `product_price` decimal(8, 2) NOT NULL,
    

    它将存储高达999999.99的价格

    如果你有高价,那么你可以使用

    `product_price` decimal(12, 2) NOT NULL,
    

    即高达9999999999.99

    【讨论】:

      【解决方案3】:

      您当然应该使用小数类型来表示金钱。从不浮点,与其他答案相反。并且使用 varchar 会阻止您进行计算。

      【讨论】:

        猜你喜欢
        • 2011-02-27
        • 2020-01-30
        • 2010-11-02
        • 2010-12-20
        • 2014-10-24
        • 2011-07-21
        • 2017-07-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多