Java初學者:基本數據類型的強制類型轉換

前文書咱們講到了基本的輸入輸出,今天咱們再回到基本的數據類型那裏,可是咱們不會贅述以前的內容,咱們今天講一講下強制類型轉換。java

    首先咱們須要明確一下概念,明確一下什麼叫做強制類型轉換,強制類型轉換就是以強制的手段把一個數據類型的數據轉換成其餘數據類型的數據。函數

    舉個例子,假設咱們有個整型數據9,咱們要強制把它轉換成浮點型數據,咱們知道,若是不考慮取值範圍的話,浮點型數據就是數學裏面的小數,你們以爲轉換之後會怎麼樣呢?這不難猜想,應該會變成9.0,事實也是如此。再好比,咱們有個浮點型數據6.7,若是咱們強制轉換成整形數據呢?咱們知道,若是不考慮取值範圍的話,整型數據也就是數學裏的整數,你們以爲轉換之後會怎麼樣呢?按照咱們的猜想,四捨五入,彷佛應該等於7,可是事實上,java會給你6,而不是7(雖然也能獲得7,但那是Math下的內建函數乾的事情,不屬於強制類型轉換的範疇),也就是說,java只會給你浮點型數據的整數部分,而不會四捨五入。
前文書咱們講到了基本的輸入輸出,今天咱們再回到基本的數據類型那裏,可是咱們不會贅述以前的內容,咱們今天講一講基本數據類型的強制類型轉換。blog


    首先咱們須要明確一下概念,明確一下什麼叫做強制類型轉換,強制類型轉換就是以強制的手段把一個數據類型的數據轉換成其餘數據類型的數據。在基本數據類型的範疇,通常有兩類強制類型轉換,數值之間的強制類型轉換,和數值與字符串之間的轉換。字符串


    數值之間的轉換,舉個例子,假設咱們有個整型數據9,咱們要強制把它轉換成浮點型數據,咱們知道,若是不考慮取值範圍的話,浮點型數據就是數學裏面的小數,你們以爲轉換之後會怎麼樣呢?這不難猜想,應該會變成9.0,事實也是如此。再好比,咱們有個浮點型數據6.7,若是咱們強制轉換成整形數據呢?咱們知道,若是不考慮取值範圍的話,整型數據也就是數學裏的整數,你們以爲轉換之後會怎麼樣呢?按照咱們的猜想,四捨五入,彷佛應該等於7,可是事實上,java會給你6,而不是7(雖然也能獲得7,但那是Math下的內建函數乾的事情,不屬於強制類型轉換的範疇),也就是說,java只會給你浮點型數據的整數部分,而不會四捨五入。怎麼轉換呢?比較簡單,好比你想把整型的9轉換成浮點型,那麼是這樣的:(double)9,若是你想把浮點型6.7轉換成整型,那麼是這樣的:(int)6.7,是否是很簡單呢。get


    那麼數值與字符串之間的轉換呢?好比把字符串"4.5"轉成浮點數4.5,或者反過來,把浮點型數字4.5轉換成"4.5",這乍一聽起來以爲不必,並且,爲何咱們非要弄個"4.5"這樣的字符串呢?若是說要print出來的話,直接print浮點型數字,也是能夠的啊。從目前所學到的知識來看,確實如此,可是,若是你要作讀取文件的操做,而要對文件裏的數字作數值處理,這就須要將表示數字的字符串轉換成數字了,由於,java將讀取的文件內容全都看作字符串,而不是數值。相對的,把浮點型數據轉換成字符串,確實不怎麼經常使用,可是在某些特定的糾結時候,仍是不得不用。數學


    那麼,如何將表示數字的字符串轉換爲數字呢?這裏須要用到Double或者Integer的內建函數,以浮點型爲例,整型與其類似。好比咱們要把"4.5"轉換成4.5,那麼是這樣的數據類型


    Double.valueOf("4.5"),或者Double.parseDouble("4.5")。 利用java的反射機制,咱們使用 print語句System.out.println(Double.valueOf("4.5").getClass().getSimpleName()),若是運行的話,能夠看到java會給出Double,證實咱們確實獲得了一個浮點型數據。反射


    還有一種比較簡單可是有投機取巧之嫌的方法就是,用一個空字符串加上一個數字,就會獲得一個表示那個數字的字符串, 好比,一樣的功能咱們能夠這麼實現:"" + 4.5。這是利用了java的字符串的操做,咱們之後會介紹到。程序


    數值轉換爲字符串,雖然不經常使用,可是咱們仍是說一下吧,好比說,把4.5轉換成"4.5",最最簡單的方法是利用java的字符串操做,用一個空字符串加上一個數字,就會獲得一個表示那個數字的字符串, 好比,咱們能夠這麼實現:"" + 4.5, 就會獲得一個"4.5",可是這有投機取巧之嫌。比較正式的方法實際上是利用String的內建方法:String.valueOf(4.5),也許你會注意到,上面咱們彷佛也用到了valueOf方法,是的,不一樣的包裏面,可能會有同名的內建函數,這沒什麼,可是他們的用法和意義可能會不一樣。不過,Double有parseDouble內建方法,可是String卻並無這個方法。方法


    最後是布爾型,它只有兩個值,true和false, 我至今沒見過布爾型轉換成其它類型,雖然String的內建函數valueOf的參數能夠是布爾值,但我並不以爲布爾型轉換成字符串有什麼實際意義,也許是小編我比較沒見識,但願你們指正。


    好了,今天暫且說到這裏,最後咱們作個簡單的程序來練習一下強制類型轉換,在這個程序中,咱們要求用戶輸入三個數字,一個是整型,一個是浮點型,一個是字符串,咱們假設用戶輸入的都是數字或者表示數字的字符串,而後咱們用強制類型轉換,再打印出一些信息。此程序其實沒什麼實用性,只是說明一下問題罷了。以下:

好了,咱們今天就說到這裏,各位看官如果初學者,請與本菜鳥一同共勉。欲知後事如何,且聽下回分解。

相關文章
相關標籤/搜索