涉及金钱存储或计算操作时,你们一般都使用什么数据类型

2020-06-19 20:57:16 +08:00
 einsdisp

直接使用小数类型进行计算或存储(编程语言的 float 类型及数据库的 decimal 类型)

还是乘以 100,以分为单位,使用整数类型进行计算及数据库存储?

10048 次点击
所在节点    程序员
76 条回复
wwti9
2020-06-19 20:59:36 +08:00
乘以 100
yulitian888
2020-06-19 20:59:58 +08:00
一万倍,长整型
wujieyuan
2020-06-19 21:02:50 +08:00
我见过好多用 double 或者 String 的, 但是我觉得用分做单位,整数型最稳,除专业金融领域, 分单位足够用了
cigarzh
2020-06-19 21:09:51 +08:00
BigDecimal 一把梭,不要想自己搞什么花花肠子
xuanbg
2020-06-19 21:17:26 +08:00
金额使用 BigDecimal,金融行业 4 位小数,非金融 2 位小数。单价、利率什么的也用 BigDecimal,具体几位小数看需求。
ackoly
2020-06-19 21:18:54 +08:00
用分一定要小心,见过本来要配置 100 元的,没加两个 00,变成 1 块。
xuanbg
2020-06-19 21:19:19 +08:00
double 、float 仅用于科学计算,用在业务系统里面就是搞笑。
xuanbg
2020-06-19 21:21:36 +08:00
用 string 就更搞笑了,完全是治标不治本。
billlee
2020-06-19 21:52:50 +08:00
不能一概而论,算加减法用定点数没有问题,但利息什么的要用乘法的时候,还是得用浮点数
vanillaxxx
2020-06-19 22:00:17 +08:00
bigdecimal
pinkSlime
2020-06-19 22:01:07 +08:00
用 double 做清结算之类的 没被人砍死吗?
还是想留后门自己薅羊毛
Aruforce
2020-06-19 22:02:13 +08:00
存储用分…计算的话最后用减……
dswyzx
2020-06-19 22:37:57 +08:00
数据库落库 decimal
业务里各种千奇百怪的要求,四位小数,两位小数,不要小数.都要涉及取整操作.真烦
3dwelcome
2020-06-19 22:45:02 +08:00
我要给 double 正名!按说精度也有 14 位,怎么就不能当存储类型了?
统计有误差,是因为有计算中有误差会逐渐累计!你把误差去掉,或者用高精度大数类型替代一下就可以。
光保存是没问题的。
dodo2012
2020-06-19 22:48:59 +08:00
decimal,,,
liprais
2020-06-19 22:55:44 +08:00
不用 decimal 早晚有问题
zjsxwc
2020-06-19 23:07:33 +08:00
两位小数,decimal 逃
Mac
2020-06-19 23:22:26 +08:00
decimal
rockyou12
2020-06-19 23:25:37 +08:00
@3dwelcome 放屁,一看就是没踩过坑的,差一分财务都会对出来好不
Sharuru
2020-06-19 23:42:33 +08:00
BigDecimal 一把梭,多币种清算业务毫无压力。

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

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

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

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

© 2021 V2EX