1. 程式人生 > 其它 >java string轉float報錯_Java十四天零基礎入門-Java浮點型別

java string轉float報錯_Java十四天零基礎入門-Java浮點型別

技術標籤:java string轉float報錯

be31fad6c99218c21ee736b337d6a92c.png

不閒聊!!!不扯淡!!!小UP只分享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;
	}
}

編譯報錯了:

3755afb87dd02c6acede48c05a005718.png

圖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);
	}
}

執行結果如下圖所示:

866fbcd29dacdd2f0095ee7756c862db.png

圖4-15:執行結果

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

學習本文之前建議先看:

Java十四天零基礎入門-Java布林型別​zhuanlan.zhihu.com zhihu-card-default.svg

下一篇文章學習地址:

Java十四天零基礎入門-Java基本資料型別轉換​zhuanlan.zhihu.com zhihu-card-default.svg

更多相關Java視訊教程資料:

2020最新版Java視訊學習路線圖-學習Java獨孤九劍總綱篇​zhuanlan.zhihu.com c1bc9980f57cdba6dbad5a2f2f0a8f7e.png

你的素質五連就是小UP的動力

4646e27a99cc67957db4266db2e133f2.png