Java中提供了兩種浮點數(shù)類型,分別是float和double。其中,float類型占用四個字節(jié),可以表示六到七位有效數(shù)字,并且它的取值范圍大約在1.4E-45到3.4E+38之間。而double類型占用八個字節(jié),可以表示十五到十六位有效數(shù)字,并且它的取值范圍大約在4.9E-324到1.8E+308之間。
float f1 = 3.14f; double d1 = 3.14159265358979323846; System.out.println("f1 = " + f1); System.out.println("d1 = " + d1);
上面的代碼中,我們定義了一個float類型的變量f1和一個double類型的變量d1,并給它們賦了一個小數(shù)值。需要注意的是,在賦值時,我們需要在小數(shù)后面添加一個"f"或"F",這樣編譯器才能識別出這是一個float類型,否則它默認為double類型。
在進行浮點數(shù)計算時,我們需要注意到浮點數(shù)的精度問題。由于浮點數(shù)的存儲方式是基于科學計數(shù)法的,因此它們的精度是有限的,我們需要通過一些算法來盡可能地減小誤差。
float sumF = 0.0f; for (int i = 0; i< 10; i++) { sumF += 0.1f; } System.out.println("sumF = " + sumF); // 輸出 1.0 double sumD = 0.0; for (int i = 0; i< 10; i++) { sumD += 0.1; } System.out.println("sumD = " + sumD); // 輸出 1.0000000000000007
上面的代碼中,我們分別使用了float和double類型的變量來進行累加操作。需要注意的是,由于浮點數(shù)的精度問題,當我們使用float類型時,在累加中存在誤差,最終得到的結(jié)果是1.0而不是我們期望的1.0000001。而當我們使用double類型時,由于它的精度更高,誤差變小了,得到的結(jié)果是1.0000000000000007。
上一篇css中公共類名字
下一篇ajax中怎樣傳遞多個值