# 本质 因为计算机采用二进制处理数据,但是很多小数,如0.1的二进制是一个无限循环小数,而这种数字在计算机中是无法精确表示的。就像十进制的时候想表示 1/3 所以,人们采用了一种通过近似值的方式在计算机中表示,于是就有了单精度浮点数和双精度浮点数等。 0.1000000000000000055511151231257827021181583404541015625。这是因为double自身表示的只是一个近似值。 而对于BigDecimal(String),当我们使用new BigDecimal("0.1")创建一个BigDecimal 的时候,其实创建出来的值正好就是等于0.1的。 那么他的标度也就是1