MySQL:(产品)价格的首选列类型?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

在MySQL中,存储产品价格(或一般货币)的首选列类型是什么?谷歌学到的小数点浮点数经常被使用,但我不知道哪一个更好。

我储存的价格从0.01到25.00不等。当然,更高的价值也是可能的。(注意:我不是要复写面食代码,我只是给你更多的信息,这可以帮助你形成一个更完整的答案)。

谢谢

提问于
用户回答回答于

十进制是我会用的

十进制/数字和浮点数之间的基本区别:浮点数是近似数字数据类型,这意味着数据类型范围内的所有值都不能精确地表示。十进制/数值是固定精度的数据类型,这意味着数据类型中的所有值都可以精确地用精度和比例尺表示。 从十进制或数字转换为浮点数可能会导致一些精度的损失。对于十进制或数字数据类型,SQLServer将每种特定的精度和比例尺组合视为不同的数据类型。十进制(4,2)和小数(6,4)是不同的数据类型。这意味着11.22和11.2222是不同的类型,尽管浮点数不是这样的。对于浮点数(6),11.22和11.2222是相同的数据类型。

用户回答回答于

字段类型“十进制”是好的。

如果你的价格很高,你可以用product_price decimal(6,2) NOT NULL,也就是说,你可以用小数点在2位前存储6位以下的价格。

字段最大值product_price decimal(6,2) NOT NULL,商店的价格将高达9999.99

如果所有价格都在0.01到25.00之间product_price decimal(4,2) NOT NULL,如果你有更高的价格,那么你可以在decimal(4,2)...

扫码关注云+社区