金额的存储用 long 可以吗

2019-05-30 14:48:17 +08:00
 wisetc
想将金额的数值乘以 1000 然后再存库,方便数据的存储。让前端提交给后端的数据都先乘以 1000,然后后端返回给前端的金额数据是放大了 1000 倍的,显示的时候再让前端处理,除以 1000,后台不用对金额做任何处理,哈哈哈。我真是越来越佩服我自己。
各位后端大佬,怎么看。
8863 次点击
所在节点    数据库
81 条回复
adzchao
2019-05-30 14:51:35 +08:00
完全可以 看精确到多少位 后端就是这么搞的
surfire91
2019-05-30 14:51:48 +08:00
精度够的话当然可以。
ezksdo
2019-05-30 14:53:33 +08:00
用整数,存的时候乘 100
mawenjie
2019-05-30 15:04:49 +08:00
这不是常识吗,你敢用浮点数搞?
tabris17
2019-05-30 15:08:53 +08:00
既然有 decimal 为什么不用?
wisetc
2019-05-30 15:11:05 +08:00
各位大佬,其实我是前端,乘以 1000,然后再除以 1000,好烦哦,再前端搞来搞去太容易出错了,我就是吐个槽,看看有没有更高级的做法,比如在数据库前面加个网,好比过了就是天上一天地下一年
neuthself
2019-05-30 15:11:38 +08:00
《高性能 MySQL 》也有讲到类似的方式,可以有但感觉没必要,直接用 decimal 吧
jifengg
2019-05-30 15:30:59 +08:00
金额,我一般都是统一单位为“分”,因为金额一般要涉及到加减的操作,用整数能保证精度。
RubyJack
2019-05-30 15:38:24 +08:00
decimal
TheCure
2019-05-30 16:20:13 +08:00
这不是大学就学的么..
keepeye
2019-05-30 16:23:18 +08:00
有些情况下要对金额做除法,就会出现小数了,如果不精确的话可能会导致金额出现偏差 1 分
zgl263885
2019-05-30 16:26:12 +08:00
我时间戳都用的 long,前端拿到后自己再处理下。可读性和性能能好的一匹。
wolfie
2019-05-30 16:35:28 +08:00
别像摩拜用 int 就行
txwd
2019-05-30 16:38:49 +08:00
见过用 4 位小数的,天坑
hailiang88
2019-05-30 16:39:05 +08:00
前端操作金额会有精度问题,需要单独处理
nszm
2019-05-30 16:44:10 +08:00
乘除这种给后端操作,前端这个搞不是搞事情吗
gogogogogo
2019-05-30 16:49:45 +08:00
iOS 端会有精读问题
rockyou12
2019-05-30 16:57:32 +08:00
后端这样存其实算是常规操作。前端好像有个 decimal.js (好像叫这个)的库可以做精确的数字运算,我觉得 lz 可能需要的是这个
swulling
2019-05-30 16:58:00 +08:00
钱一定要用整数存…存成分就行了
9151
2019-05-30 17:04:09 +08:00
楼主在搞什么山寨币?

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

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

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

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

© 2021 V2EX