risc-v中文社区

 找回密码
 立即注册
查看: 1141|回复: 0

[经验] java数值越范围不会出现异常

[复制链接]

20

主题

23

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2021-7-29 17:04:19 | 显示全部楼层 |阅读模式
先将实验代码和显示结果列在下面:

int x=123456789 , y=81 , z;
z = x*y;
long lz = x*y;
System.out.println("x*y = " +z + " lz=" + lz); //x*y = 1410065317 lz=1410065317 不正确,正确值应该是9999999909
y=810;
lz = x*y;
System.out.println("lz=" + lz); //lz=1215751282 值不正确
lz = (long)x * (long)y;
System.out.println("lz=" + lz); //lz=99999999090 正确
//int * int 结果也是int,如果值超范围了,那么不会异常,只不过值不正确,所以,这种情况,只能是将int都强转为long,再相乘
//java数值型数据越范围,计算时不会出异常,但值将会不正确

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-27 17:56 , Processed in 0.013895 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表