笔记:Java 数值类型转换


自动类型转换

在 Java 语言中操作数值时,满足自动转换关系时,数值可自动转换为目标类型。

比如:

int num = 100200300;

// 结果100200300
long lNum = num;
// 结果1.00200304E8,损失精度
float fNum = num; 
// 结果1.002003E8
double dNum = num;

自动转换关系,如下:

byte -> short -> int
char -> int
int -> long
int -> float(损失精度)
int -> double
long -> float(损失精度)
long -> double(损失精度)

二元运算时自动转换规则

两个不同类型数值之间进行二元运算时,会先自动转换时为同一种类型。具体如下:

其中一个为 double 时,优先转换为 double。
否则,其中一个为 float 时,优先转换为 float。
否则,其中一个为 long 时,优先转换为 long。
否则,都转换为 int 类型。

比如:

short m = 2;
byte n = 3;
int z = m * n; // 结果类型应为 int

强制类型转换

当转换类型时,不满足自动转换条件时,可进行强制类型转换。
语法格式是,在预转换的变量前添加一对圆括号,括号内指明目标类型。

double num = 1.1;
int iNum = (int)num; // 结果为1

其它转换情况

bool 类型转换

当需要将 bool 类型转换为数值时,可以使用如下表达:

boolean hasTag = false;
int hasTagNum = hasTag ? 1 : 0;
// hasTagNum 值为0

(全文完)


手机扫码阅读

本文为作者原创(特别说明的部分除外),版权归作者本人所有。请勿转载本文;欢迎引用并链接到原文。

发表评论

电子邮件地址不会被公开。 必填项已用*标注