Java教程
Java標識符與關鍵字
Java變量
Java數據類型
Java運算符
Java控制語句
Java方法
Java面向對象
Java對象的創建和使用
Java封裝
Java中static和this
Java繼承
Java方法覆蓋和多態
Java super
Java基礎練習題

Java浮點類型

浮點型數據實際上在內存中存儲的時候大部分情況下都是存儲了數據的近似值,為什么呢?這是因為在現實世界中存在無窮的數據,例如:3.333333333333333333..,數據是無窮的,但是內存是有限的,所以只能存儲近似值,float單精度占4個字節,double雙精度占8個字節,相對來說double精度要高一些。由于浮點型數據存儲的是近似值,所以一般判斷兩個浮點型數據是否相等的操作很少。

在java語言中有這樣的一條規定:只要是浮點型的字面量,例如1.0、3.14等默認會被當做double類型來處理,如果想讓程序將其當做float類型來處理,需要在字面量后面添加f/F。請看以下代碼:

public class DoubleTest {
	public static void main(String[] args) {
		float f = 3.0;
	}
}

編譯報錯了:

Java學習資源

圖4-14:編譯錯誤提示信息

為什么會編譯報錯呢?那是因為3.0默認被當做double類型來處理,占用8個字節,前面的f變量是float類型占用4個字節,大容量無法直接賦值給小容量。怎么修改呢?請看代碼:

public class DoubleTest {
	public static void main(String[] args) {
		//float f = 3.0;
		//第一種方案
		float f = 3.0F;
		System.out.println("f = " + f);
		//第二種方案
		float f1 = (float)3.0;
		System.out.println("f1 = " + f1);
	}
}

運行結果如下圖所示:

圖4-15:運行結果

以上程序的第一種方案在3.0后面添加了F,3.0F被當做float類型來處理。第二種方案是進行了強制類型轉換,第二種方案可能會存在精度損失。

全部教程
亚洲人体摄影,亚洲视频中文字幕,亚洲人成在线电影,亚洲午夜无遮挡