目录
1、问题
2、初始化对象
3、格式化
4、比较
5、溢出
1、问题
当做一些对精度要求比较高的运算时,基本数据类型的double和float可能就不够用了。比如以下例子:
讯享网Java中使用了IEEE754标准计算浮点数,没有办法精确表示0.1等小数,导致精度丢失。

2、初始化对象
当对精度要求比较高时,我们可以使用BigDecimal,但在使用时需要注意,初始化对象时需要使用字符串,而不能使用直接的数值,对比如下两组代码:
错误用法:
讯享网
正确用法:
java基础类型中精度
3、格式化
格式化展示的同样也会出现精度问题。所以最好也使用BigDecimal进行格式化
讯享网
4、比较
BigDecimal的比较方法有两个,分别是equal和compareTo。equal同时比较了小数位数scale和精度precision,而compareTo则是比较值。所以当我们仅需要比较值的时候,最好使用compareTo。
同样的,当需要用到Set去重的时候,要使用TreeSet而不是HashSet,两者的判重方法不同,TreeSet使用compareTo。
5、溢出
如果预期可能会出现大数计算,最好使用BigInteger,或者使用Math类,通过溢出报错来做特殊处理。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/4854.html