我有个一个保留 2 位小数的浮点数需要保存, 我是把它乘以 100,按照 int 存,还是按照 decimal(4,2)来存?

2020-09-23 09:28:09 +08:00
 hackingwu

我有一个字段要保留 2 位小数,我是按照 decimal(4,2)来存,还是乘以 100,按照 int 来存,返回给使用者的时候在做个转换。目的是 decimal(4,2)占了 8bytes,int 才 4bytes, 我这个表有 10 来个 decimal 的字段。

3434 次点击
所在节点    程序员
26 条回复
cedoo22
2020-09-23 17:41:35 +08:00
不管什么场景, 直接按类型存吧。
decimal 发明出来 不就是为了处理浮点数的?
Veneris
2020-09-23 17:46:50 +08:00
以微信和美团的数据结构看,都是以分做单位。
newmlp
2020-09-23 18:38:52 +08:00
建议 decimal,int 容易出 bug,到处都要换算,万一哪里忘了找起来也麻烦
liprais
2020-09-23 18:45:41 +08:00
跟钱有关的不用 decimal 是真的心大
lululau
2020-09-23 18:56:15 +08:00
int*100 是空间和时间兼得吧,缺点是需要自己换算倍数关系,但是从运行效率上讲,int*100 应该比 bigdecimal 快吧
sheeta
2020-09-23 19:15:59 +08:00
看看腾讯,支付宝它们是怎么做的不就行了呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/709626

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX