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的参数能够是布尔值,但我并不以为布尔型转换成字符串有什么实际意义,也许是小编我比较没见识,但愿你们指正。


    好了,今天暂且说到这里,最后咱们作个简单的程序来练习一下强制类型转换,在这个程序中,咱们要求用户输入三个数字,一个是整型,一个是浮点型,一个是字符串,咱们假设用户输入的都是数字或者表示数字的字符串,而后咱们用强制类型转换,再打印出一些信息。此程序其实没什么实用性,只是说明一下问题罢了。以下:

好了,咱们今天就说到这里,各位看官如果初学者,请与本菜鸟一同共勉。欲知后事如何,且听下回分解。

相关文章
相关标签/搜索