Java 数值类型转换

实际编程中,经常需要将一种数值类型转换为另一种数值类型
以下是转换的合法规范:
在这里插入图片描述
例如:

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

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

  • 如果两个操作数中有一个是 double 类型, 另一个操作数就会转换为 double 类型。
  • 否则, 如果其中一个操作数是 float 类型, 另一个操作数将会转换为 float 类型。
  • 否则, 如果其中一个操作数是 long 类型, 另一个操作数将会转换为 long 类型。
  • 否则, 两个操作数都将被转换为 int 类型

强制类型转换

在必要的时候, int 类型的值将会自动地转换为 double 类型。但另一方面,有时也需要将 double 转换成 int。 在 Java 中, 允许进行这种数值之间的类型转换 。

double x = 8.998;
int nx = (int) x; 

如果想对浮点数进行舍人运算, 以便得到最接近的整数(在很多情况下, 这种操作更有
用,) 那就需要使用 Math_round 方法:

double x =8.998;
int nx = (int) Math.round(x); 

现在, 变量 nx 的值为 9。 当调用 round 的时候, 仍然需要使用强制类型转换( int)。其原因
是 round 方法返回的结果为 long 类型,由于存在信息丢失的可能性,所以只有使用显式的强
制类型转换才能够将 long 类型转换成 int 类型。

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yawn__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值