这是由浮点不精确(在您的
double输入值中)引起的。
System.out.println(new BigDecimal(1.115));1.1149999999999999911182158029987476766109466552734375
请改用String构造函数。
BigDecimal.valueOf("1.115")一旦数字为BigDecimal,就不会丢失精度,并且舍入可以正常进行。但是,您必须确保该数字完整无缺(通过强制采用浮点类型将其保留为BigDecimal之前的精度)。



