Java基本数据类型与数值类型之间的转换

基本数据类型

Java是一种强类型语言,这意味着必须为每一个变量声明一种类型。在Java中,一共有8种基本类型,其中包括4种整型、2种浮点型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。

1.整型

整型用于表示没有小数的数值,有正负之分。Java一共有四种整型:

类型存储需求取值范围
byte1字节-128 ~ 127
short2字节-32 768 ~ 32 767
int4字节-2 147 483 648 ~2 147 483 647 (正好超过20亿)
long8字节-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807

注:Java中没有任何无符号类型(unsigned type)

2.浮点类型

浮点型用于表示有小数部分的数值,同样有正负之分。在Java中有两种浮点类型:

类型存储需求取值范围
float4字节大约 ± 3.402 823 47E + 38F (有效位数为6~7位)
double8字节大约 ± 1.797 693 134 862 315 70E + 308(有效位数为15位)

double表示这种类型的数值精度是float类型的两倍(称为双精度型)。绝大部分应用程序都采用double类型。

注:float类型的数值有一个后缀F(例如,3.141F)。没有F后缀的浮点类型数值(例如,3.141)默认为double类型。也可以在浮点数值后面添加后缀D(例如,3.141D)。

3. char类型

char类型用于表示单个字符。通常用来表示字符常量。例如,'A’是编码为65所对应的字符常量。

特殊字符的转义字符序列
在这里插入图片描述

4.boolean类型

boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。整数值和布尔值之间不能进行相互转换。

数值类型之间的转换

在程序运行时,经常需要把一种数值类型转换为另一种数值类型。包括自动(隐式)类型转换和强制类型转换。

1.自动类型转换

自动类型转换不会导致数据的丢失。下图给出了数值类型之间的合法转换:
在这里插入图片描述
在图中有6个实心箭头,表示无信息丢失的转换,有三个虚箭头,表示可能有精度损失的转换。例如,123 456 789是一个大整数,它所包含的位数比float类型所能够表达的位数多。当将这个整型数值转换为float类型时,将会得到同样大小的结果,但却失去了一定的精度。

int n=123456789;
float f=n;  // f is 1.23456792E8

当使用上面两个数值进行二元操作时(例如,n+f),先将两个操作数转换为同一种类型,即转换成float类型,然后进行计算。

2.强制类型转换

在必要时,int类型的只能可以自动转换成double类型。但另一方面,有时也需要将double类型转换为int。在Java中,允许进行这种数值之间的类型转换。当然,有可能丢失一些信息。在这种情况下,可以通过强制类型转换实现这个操作。

强制类型转换的语法格式是在圆括号中给出想要转换的目标类型,后面紧跟待转换的变量名。例如:

double a=3.141;
int x=(int)a;

这样,变量x的值为3。强制类型转换通过截断小数部分将浮点型转换为整型。

注:如果试图将一个数值从一种类型强制为另一种类型,而又超出了目标类型的表示范围,结果就会截断为一个完全不同的值。例如,(byte)300的实际值为44。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值