mysql - 我应该在 Mysql 中将价格存储为小数还是整数?

标签 mysql integer decimal

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

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

谢谢。

最佳答案

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

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

正如@thilo 所指出的,您还可以避免有时会出现的浮点错误。

显示的时候,简单的除以100

关于mysql - 我应该在 Mysql 中将价格存储为小数还是整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41060515/

相关文章:

php - Opencart:产品名称打印多次,如何解决。?

mysql - 反向查询 like - laravel eloquent or raw MySQL query

string - 如何在 Haskell 中将整数连接为字符串?

python - 为什么 pythondecimal.Decimal 精度与 equable args 不同?

objective-c - 在 objective-c 中使用 NSDecimalNumber

php - Symfony2 查询生成器添加自定义顺序查询

Java : large integer numbers error

database - 从带小数点的字符串转换为 NUMERIC 时如何避免舍入整数?

c - 如何使用 printf 使零与小数一起打印

php - mysqli_fetch_assoc 是否按顺序返回数据?