Java BigDecimal使用时如何避免常见陷阱?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1106个文字,预计阅读时间需要5分钟。
目录+前言+一. BigDecimal的初始化精度丢失问题+二. BigDecimal进行除法运算时需设置精度,否则对于除不尽的情况会抛出异常+三. 不要使用BigDecimal的equals方法比较大小,否则可能会因精度问题导致错误
目录
- 前言
- 一. BigDecimal的初始化精度丢失问题
- 二. BigDecimal在进行除法运算时需设置精度,否则对于除不尽的情况会抛出异常
- 三. 不要使用BigDecimal的equals方法比较大小, 否则可能会因为精度问题导致比较结果和预期的不一致
- 补充:BigDecimal比较值大小避坑
- 总结
前言
在java.math包中提供了对大数字的操作类,用于进行高精确计算,如BigInteger,BigDecimal类。而平常我们开发中使用最多的float和double只能适用于一般的科学和工程计算,如果要在比较精确的计算方面如货币,那么使用float和double会相应的丢失精度,因此用于精密计算大数字的类BigDecimal就必不可少了。所以BigDecimal适合商业计算场景,用来对超过16位有效位的数进行精确的运算。
本文共计1106个文字,预计阅读时间需要5分钟。
目录+前言+一. BigDecimal的初始化精度丢失问题+二. BigDecimal进行除法运算时需设置精度,否则对于除不尽的情况会抛出异常+三. 不要使用BigDecimal的equals方法比较大小,否则可能会因精度问题导致错误
目录
- 前言
- 一. BigDecimal的初始化精度丢失问题
- 二. BigDecimal在进行除法运算时需设置精度,否则对于除不尽的情况会抛出异常
- 三. 不要使用BigDecimal的equals方法比较大小, 否则可能会因为精度问题导致比较结果和预期的不一致
- 补充:BigDecimal比较值大小避坑
- 总结
前言
在java.math包中提供了对大数字的操作类,用于进行高精确计算,如BigInteger,BigDecimal类。而平常我们开发中使用最多的float和double只能适用于一般的科学和工程计算,如果要在比较精确的计算方面如货币,那么使用float和double会相应的丢失精度,因此用于精密计算大数字的类BigDecimal就必不可少了。所以BigDecimal适合商业计算场景,用来对超过16位有效位的数进行精确的运算。

