货币选择int还是decimal类型? 哪个更好?
首先场景为RMB, 简单商城, 两位小数, 前后端都包含;
decimal单位元, int单位分.
该如何选择的? 哪个更好些?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
首先场景为RMB, 简单商城, 两位小数, 前后端都包含;
decimal单位元, int单位分.
该如何选择的? 哪个更好些?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
做过售检票系统(C++),涉及到钱的单位都是使用long long,单位是分。不用考虑计浮点数的精度问题,某些语言(如PHP)浮点数的计算可能会丢失精度,影响计算结果的准确性。所以推荐使用小单位来代替小数。
也可以用int,然后model层进行扩大100倍和缩小一百倍
我这边是用decimal的,数据库直接是number(28,8)
这种在像erp的系统中要换算的比较常用。 int分的话,换算时也会出现小数的。。
decimal带两位小数,更精准一些
看精度要求,如果本身对精度要求比较高,建议使用decimal.因为小数的存在可以更精确.如果精度要求不高,也就是分的话,那int完全没有问题.何为精度要求,打个比方,银行的利率.你就应该懂了.
我这边用的
decimal(14,3)
,语言PHP,计算使用BC扩展也保留3位,显示出时转成2位如果需要计算啥的 建议 int 吧
建议数据库里存 分为单位 避免浮点运算,因为浮点运算计算机油精度问题
比如:1.01元 对应的数据存储 是 101
看单位吧,如果单位是元,用
decimal
;如果是分,用int