我可以在Mysql中存储十进制或整数的价格吗?

Har*_*son 4 mysql integer decimal

我目前正在使用decimal存储价格数据(将4.2美元存储为4.20),但似乎难以比较相等,即需要计算2个数字之间的差异(abs(number1 - number 2) < 0.01)而不是使用number1 == number2

所以我想知道将价格存储为整数是否会更好,比如将商店4.2美元定为420.

谢谢.

e4c*_*4c5 11

您可以使用所谓的次要货币.这基本上是将4.20美元存储为420.这种做法通常在与支付处理网关或API进行通信时进行调整.

好处是数据库和存储中的所有算术运算都使用整数而不是小数.这意味着它们占用的空间更少,操作更快.

正如@thilo所指出的那样,你也避免了有时可能会出现的浮点错误.

在显示时,只需除以100

  • 最重要的是,它避免了在根本没有适当小数处理的环境中浮点数(即舍入错误)的麻烦。 (2认同)