單價 * 數量 * 折扣=應收金額 或者正常的加減,會突然出現很多個小數
public static void main(String[] args) { double kk = 3.14; kk += 0.37; float ff = 3.14f; ff += 0.37f; System.out.println("double kk =" + kk); System.out.println("float ff =" + ff); }
輸出結果:
double kk =3.5100000000000002 float ff =3.5100002
小數加減乘除建議用BigDecimal;
public static void main(String[] args) { //小數加減乘除用BigDecimal BigDecimal b1 = new BigDecimal("3.14"); BigDecimal b2 = new BigDecimal("0.37"); BigDecimal b3 = b1.add(b2);// BigDecimal b4 = b1.subtract(b2);// BigDecimal b5 = b1.multiply(b2); System.out.println("3.14 + 0.37 = " + b3); System.out.println("3.14 - 0.37 = " + b4); System.out.println("3.14 * 0.37 = " + b5); } 輸出: 3.14 + 0.37 = 3.51 3.14 - 0.37 = 2.77 3.14 * 0.37 = 1.1618
JDK中BigDecimal類方法說明:https://www.yiibai.com/java/math/java_math_bigdecimal.html