小數計算取值問題

bigdecimal構造器需要傳入字符串類型.傳double會有精度問題.

同樣的,sout默認輸出數字也是double類型

 

package corejava;

import java.math.BigDecimal;

public class test {

  public static void main(String[] args) {
    double a = 2.0;
    double b = 1.1;
    System.out.println(a - b);//
    float c = 2.0f;
    float d = 1.1f;
    System.out.println(c - d);// 0.9

    System.out.println(BigDecimal.valueOf(2.0 - 1.1));//

    BigDecimal bigDecimal1 = new BigDecimal("2.0");
    BigDecimal bigDecimal2 = new BigDecimal("1.1");
    BigDecimal subtract = bigDecimal1.subtract(bigDecimal2);
    System.out.println(subtract);// 0.9
    
  }
}

運行結果如下:

0.8999999999999999
0.9
0.8999999999999999
0.9

 

 

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