double取余数:%
private void test(){
double mainByNumber = 3.3D;
double spc = 0.1D;
double result = mainByNumber % spc;
double result = mainByNumber * spc;
System.out.println("result:"+result);//result:0.09999999999999964
}
避免方法:使用BigDecimal
不要使用new BigDecimal(xxx),要使用BigDecimal.valueOf(xxx)
divideAndRemainder:返回数组集合第一个为整数,第二个是余数,可以用此方法避免精度丢失。
BigDecimal[] bigDecimal1 = BigDecimal.valueOf(mainByNumber).divideAndRemainder(BigDecimal.valueOf(spc));