使命召唤9点开始游戏没反应-飞雪桌面日历注册码

bigdecimal
2023年4月4日发(作者:360怎么卸载不了)

BigDecimal⾯试题

BigDecimal精度损失问题

因为计算机采⽤⼆进制处理数据,但是很多⼩数,如0.1的⼆进制是⼀个⽆线循环⼩数,⽽这种数字在计算机中是⽆法精确表⽰的。⼈们采

⽤了⼀种通过近似值的⽅式在计算机中表⽰,于是就有了单精度浮点数和双精度浮点数等。作为单精度浮点数的float和双精度浮点数的

double,在表⽰⼩数的时候只是近似值,并不是真实值。当使⽤BigDecimal(Double)创建⼀个的时候,得到的BigDecimal是损失了精

度的。

⽽使⽤⼀个损失了精度的数字进⾏计算,得到的结果也是不精确的。想要避免这个问题,可以通过BigDecimal(String)的⽅式创建

BigDecimal,这样的情况下,0.1就会被精确的表⽰出来。其表现形式是⼀个⽆标度数值1,和⼀个标度1的组合。

BigDecimal⽐较⼤⼩

BigDecimal是⼀个⾮常好⽤的表⽰⾼精度数字的类,其中提供了很多丰富的⽅法。但是,他的equals⽅法使⽤的时候需要谨慎,因为他

在⽐较的时候,不仅⽐较两个数字的值,还会⽐较他们的标度,只要这两个因素有⼀个是不相等的,那么结果也是false、如果想要对两个

BigDecimal的数值进⾏⽐较的话,可以使⽤compareTo⽅法。

更多推荐

bigdecimal