關於double類型相乘的精度問題

double db1 = 12.13;

double db2 = 12.13;

/**
 * 提供精確的乘法運算。
 * @param v1 被乘數
 * @param v2 乘數
 * @return 兩個參數的積
 */
public static double mul(double v1,double v2){
    BigDecimal b1 = new BigDecimal(Double.toString(v1));
    BigDecimal b2 = new BigDecimal(Double.toString(v2));
    return b1.multiply(b2).doubleValue();
}

沒有精度的計算答案:147.13690000000003

有精度的計算答案:147.14

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章