基本数据类型的精度转换

本文介绍了在编程中,如何进行低精度到高精度的转换,以及高精度转低精度时可能遇到的精度损失和数据溢出问题。重点讲解了类型运算中的自动转换规则和强制转换的潜在风险,以及ASCII码和Unicode码的应用。
摘要由CSDN通过智能技术生成

目录

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 码值

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.

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成果、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值