这是由浮点不精确(在您的
double输入值中)引起的。
System.out.println(new BigDecimal(1.115));1.1149999999999999911182158029987476766109466552734375
请改用String构造函数。
BigDecimal.valueOf("1.115")
一旦数字为BigDecimal,就不会丢失精度,并且舍入可以正常进行。但是,您必须确保该数字完整无缺(通过强制采用浮点类型将其保留为BigDecimal之前的精度)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)