java类型转换

一.java的类型转换:

 首先先了解java的基本数据类型:

我们知道java提供了八种基本数据类型,分别是:四个整数型(byte,short,int,long),两个浮点型(double,float),一种字符类型(char),以及一种布尔型(boolean)。类型表示范围如下:

byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1,直接赋值时必须在数字后加上l或L。

float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。

double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

boolean:只有true和false两个取值。

char:16位,存储Unicode码,用单引号赋值。

 

其次 ,java的类型转换该如何实现?

1)强制类型转换

即强行将类型范围大的变量、数据赋值给类型范围小的类型。只有当两种数据类型不兼容,或目标类型的取值范围小于源类型时,这时就需要进行强制类型转换。

例题:

描述:

设计一个方法,将一个小于2147483647的double类型变量以截断取整方式转化为int类型

输入描述:

随机double类型变量

输出描述:

转化后的int类型变量
 

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double d = scanner.nextDouble();
System.out.println(Main.typeConversion(d));
}
public static int typeConversion(double d){

//write your code here......

int i = (int)d;

 return i;

   }

}

表达:数据类型 变量2 = (数据类型)变量1、数据;

强制类型转换会带来哪些问题?

1.可能会造成数据丢失;

2.上述例题中,将浮点型强转成整形,直接丢掉小数部分,保留整数部分返回,数据的精确度不一致,例如输入12.65,输出为12;

 

二)自动类型转换

即:数字表示范围小的数据类型可以自动转换成范围大的数据类型,且两种数据类型兼容的情况下,就会发生自动类型转换。

范围:byte,short,char→int→long→float→double;(从低级类型数据转换成高级类型数据)

 其中char 类型比较特殊,char 自动转换成 int、long、float 和 double,但 byte 和 short 不能自动转换为 char,而且 char 也不能自动转换为 byte 或 short。

例如:类型一:低级变量可以直接转换为高级变量,下列语句可在java直接通过

byte b;

int i=b;

long l=b;

float f=b;

double d=b;

类型2:若char型向高级类型(整型)转换时,会转换为对应ASCII码值

char c='c';

int i=c;

System.out.println("输出:"+i);

结果是:输出:99;

 

注意:byte,short,char三种类型而言,他们是平级的,不能相互自动转换,需使用强制类型转换。

三)包装类过渡类型转换

包装类,就是可以直接将简单类型的变量表示为一个类,在执行变量类型的相互转换时,我们会大量使用这些包装类。Java共有六个包装类,分别是Boolean、Character、Integer、Long、Float和Double,从字面上就可以看出它们分别对应于 boolean、char、int、long、float和double。

对比之前两种简单数据类型转换,包装类过度类型转换属于高级数据类型转换,即先声明一个变量,然后生成一个对应的包装类,利用包装类的各种方法进行类型转换。
例:

当把float型转换为double型时:

float f1=100.00f;
Float F1=new Float(f1);
double d1=F1.doubleValue();//F1.doubleValue()为Float类的返回double值型的方法

 

 

 

简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即:Boolean(boolean value)、Character(char value)、Integer(int value)、Long(long value)、Float(float value)、Double(double value)

而在各个包装类中,总有形为××Value()的方法,来得到其对应的简单类型数据。利用这种方法,也可以实现不同数值型变量间的转换,例如,对于一个双精度实型类,intValue()可以得到其对应的整型变量,而doubleValue()可以得到其对应的双精度实型变量。

posted @   zfj0318  阅读(1450)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示