上海11选5

分享到:文章主题: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
aaa888楼主
水木总版主
身份
用户
文章
789
星座
水瓶座
积分
30634
等级
灵樨(8)

发信人: aaa888 (水木总版主), 信区: Java
标  题: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sat Jul 25 15:22:14 2020), 站内
  
我说算钱就应该用bigdecimal 面试官说不对 要用String  如果用bigdecimal会丢失数据   我也不太明白啥意思  各位大牛指点下
--
  
※ 来源:·水木社区 http://dadixinhe.com·[FROM: 222.129.33.*]

返回顶部
hollyczy第1楼
哈哈
身份
用户
文章
6630
星座
魔羯座
积分
40702
等级
沉香(10)

发信人: hollyczy (哈哈), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sat Jul 25 18:38:20 2020), 站内
  
TMD装逼吧,你让他举个例子bd装不下的金钱计算
--
  
※ 来源:·水木社区 ·[FROM: 120.235.191.*]

返回顶部
aaa888第2楼
水木总版主
身份
用户
文章
789
星座
水瓶座
积分
30634
等级
灵樨(8)

发信人: aaa888 (水木总版主), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sat Jul 25 20:47:46 2020), 站内
  
  
【 在 hollyczy 的大作中提到: 】
: TMD装逼吧,你让他举个例子bd装不下的金钱计算
我也没明白他说的啥意思  好像是做接口的不能用bigdecimal   不然数据有问题
--
  
※ 来源:·水木社区 http://dadixinhe.com·[FROM: 222.129.33.*]

返回顶部
Mikov第3楼
Mikov Chain
身份
用户
文章
6917
星座
天蝎座
积分
51155
等级
楠木(12)

发信人: Mikov (Mikov Chain), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sat Jul 25 23:51:19 2020), 站内
  
你告诉他,这个逼装得有点过了
  
【 在 aaa888 的大作中提到: 】
: 我说算钱就应该用bigdecimal 面试官说不对 要用String  如果用bigdecimal会丢失数据   我也不太明白啥意思  各位大牛指点下
  
--
  
※ 来源:·水木社区 http://dadixinhe.com·[FROM: 223.72.64.*]

返回顶部
lalalaxia第4楼
lalalaxia
身份
用户
文章
4242
积分
41585
等级
梧桐(9)

发信人: lalalaxia (lalalaxia), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sun Jul 26 06:56:48 2020), 站内
  
指bigdecimal的构造函数要用string类型那个,不然会丢失精度吧?
--
  
※ 来源:·水木社区 http://dadixinhe.com·[FROM: 183.195.10.*]

返回顶部
cass第5楼
cass
身份
用户
文章
3831
星座
巨蟹座
积分
50980
等级
沉香(10)

发信人: cass (cass), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sun Jul 26 07:39:45 2020), 站内
  
你的面试官说的没错,rpc跨语言的那种,高精数一般都是建议用string
【 在 aaa888 (水木总版主) 的大作中提到: 】
  
【 在 hollyczy 的大作中提到: 】
: TMD装逼吧,你让他举个例子bd装不下的金钱计算
我也没明白他说的啥意思  好像是做接口的不能用bigdecimal   不然数据有问题
--
  
  
  
--
  
※ 来源:·水木社区 dadixinhe.com·[FROM: 124.64.127.*]

返回顶部
chenjinyuan第6楼
心梦如水
身份
用户
文章
13206
星座
双子座
积分
35819
等级
梧桐(9)

发信人: chenjinyuan (心梦如水), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sun Jul 26 08:38:05 2020), 站内
  
为啥这么麻烦,最小单位是分,所以x100装long里面不就好了
【 在 aaa888 的大作中提到: 】
: 我说算钱就应该用bigdecimal 面试官说不对 要用String  如果用bigdecimal会丢失数据   我也不太明白啥意思  各位大牛指点下
--
  
※ 来源:·水木社区 ·[FROM: 120.229.34.*]

返回顶部
sm181018第7楼
sm181018
身份
用户
文章
632
星座
魔羯座
积分
24289
等级
白杨(6)

发信人: sm181018 (sm181018), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sun Jul 26 09:54:45 2020), 站内
  
比如基金净值, 就精确到小数点后四位了
  
【 在 chenjinyuan 的大作中提到: 】
: 为啥这么麻烦,最小单位是分,所以x100装long里面不就好了
  
--
  
※ 来源:·水木社区 http://dadixinhe.com·[FROM: 106.38.58.*]

返回顶部
milksea第8楼
肥了,又肥了 >>>_<<<
身份
核心驻版
文章
18715
积分
100113
等级
楠木(12)

发信人: milksea (肥了,又肥了 >>>_<<<), 信区: Java
标  题: Re: 主题:面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sun Jul 26 10:40:27 2020), 站内
  
描述中的面试官似乎存储表示和运算表示分不清。string是不能用来运算的。
因为除法除不尽之类运算,小数表示时舍入总是需要的。此时误差出在截断舍入。
金融领域在规定舍入方法后,固定十进制的误差就确定了,被称为无误差。此时十进制和二进制转换会带来额外的截断舍入误差,这才是不能用double(双精度二进制浮点数)而必须用decimal(字面上就是十进制)类型的理由。
对经验不足的人来说,可能会忽略,绝大多数程序语言中小数数字字面量也是有类型的,是二进制浮点数类型,即使给decimal类型赋值也会带来隐含的类型转换和舍入误差,这是要用string类型表示数字常量的原因。举例来说,就是一毛钱 0.1不能直接在程序里写 0.1,利率 0.04 也不能直接写 0.04,要写 BigDecimal("0.1") 之类。
其实这是编程语言孱弱造成的。C++ 用 operator"" 可以自定义数字字面量,就可以绕过字符串了。
【 在 aaa888 的大作中提到: 】
: 我说算钱就应该用bigdecimal 面试官说不对 要用String  如果用bigdecimal会丢失数据   我也不太明白啥意思  各位大牛指点下
: --
: FROM 222.129.33.*
--
  
※ 来源:·水木社区 ·[FROM: 114.249.192.*]

返回顶部
littleSram第9楼
littleSram
身份
用户
文章
6670
星座
未知
积分
21430
等级
灵樨(8)

发信人: littleSram (littleSram), 信区: Java
标  题: Re: 面试蚂蚁金服被问为什么用bigdecimal会精度损失
发信站: 水木社区 (Sun Jul 26 12:56:15 2020), 站内
  
这种雕虫小技都要问啊
【 在 aaa888 的大作中提到: 】
: 我说算钱就应该用bigdecimal 面试官说不对 要用String  如果用bigdecimal会丢失数据   我也不太明白啥意思  各位大牛指点下
--
  
※ 来源:·水木社区 ·[FROM: 114.242.250.*]

返回顶部