title: BigDecimal 详解 category: Java tag: Java基础 《阿里巴巴 Java 开发手册》中提到:“为了避免精度丢失,可以使用 来进行浮点数的运算”。 浮点数的运算竟然还会有精度丢失的风险吗?确实会! 示例代码: 为什么浮点数 或 运算的时候会有精度丢失的风险呢? 这个和计算机保存浮点数的机制有很大关系。我们知道计算机是二进制的,而且计算机在表示一个数字时,宽度是有限的,无限循环的小数存储在计算机时,只能被截断,所以就会导致小数精度发生损失的情况。这也就是解释了为什么浮点数没有办法用二进制精确表示。 就比如说十进制下的 0.2 就没办法精确转换成二进制小数: 关于浮点数的更多内容,建议看一下计算机系统基础(四)浮点数这篇文章。