基本数据类型的精度转换

目录

1.低精度 转 高精度:

2.高精度 转 低精度

注意点

1

2

一些相关运算:

1

2

3.


1.低精度 转 高精度

int a=2;// 低精度
double b=a;  //高精度
System.out.println(b);  //自动转

2.高精度 转 低精度

double a=2;    //高精度
int b=(int)a;  //double转int 强转
System.out.println( b);

注意点

1

注:当多个类型数字相计算时,结果将自动转换为最高精度

如:

2

  1. 强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。

  2. byte/short/char这三种类型都可以发生数学运算,例如加法“+”.

  •         由下面代码 可以看出只有当 char 类型的‘a’发生运算时才会转化成对应得 ASCII 码值

基本数据类型的精度转换_第1张图片

3.byte/short/char这三种类型在运算的时候,都会被首先提升成为int类型,然后再计算。

short + short = int

byte + short = int

byte + byte = int

4.boolean类型不能发生数据类型转换

ASCII码表:
American Standard Code for Information Interchange,美国信息交换标准代码。
Unicode码表:
万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,从128开始包含有更多字符。

48 - '0'
65 - 'A'
97 - 'a'


一些相关运算

1

若给定(两个int类型)number1=30,numebr2=40.先相除得int类型的0,再经过转化为double类型的0.0

而下面这一种是将number1先变为double类型,再和number2运算,结果为double类型


2

注意!!:13/10先变为int类型的1,后面再赋值给

左边的double类型 ,结果为1.0 不能想当然的认为左边是double类型

结果就是1.3

想要得到1.3正确写法应该是这样 ,

13/10.0 int与double的运算,先转化为double类型,因此结果是1.3


3.

小数参与运算时结果可能是不准确的;

你可能感兴趣的:(java,开发语言)