首页 > Java > java教程 > 为什么将'L”添加到整数文字会改变乘法结果?

为什么将'L”添加到整数文字会改变乘法结果?

Linda Hamilton
发布: 2024-11-07 09:53:02
原创
763 人浏览过

Why Does Adding 'L' to an Integer Literal Change Multiplication Results?

为什么乘法运算会产生不同的结果?

在提供的代码中,结果的差异是由于存在或不存在字母“L”附加到整数文字上。要理解这种差异,深入研究所涉及的数据类型非常重要:

long oneYearWithL = 1000*60*60*24*365L;
long oneYearWithoutL = 1000*60*60*24*365;
登录后复制

分配给 oneYearWithL 的值是一个 long,由“L”后缀表示。与整数相比,长整型可以表示更大范围的值。在这种情况下,365 被认为是 long,并且将其与前面的整数值相乘的结果也是 long。

另一方面,oneYearWithoutL 被分配了一个整数值。整数值相乘得到一个整数。但是,此表达式的值超出了最大 32 位整数限制 (2^31 - 1)。因此,在赋值过程中,它会被截断以适合有效的整数范围,从而导致计算不正确。

为了进一步说明这一点,请考虑以下输出:

System.out.println(1000*60*60*24*365L);
System.out.println(1000*60*60*24*365);
System.out.println(Integer.MAX_VALUE);
登录后复制

输出:

31536000000
1471228928
2147483647
登录后复制

这表明当包含“L”时,结果在 long 数据类型的范围内,因此是准确的。但是当省略“L”时,结果会被截断为整数,从而导致值不正确。

要纠正此问题并获得正确的结果,oneYearWithoutL 中的乘法表达式应显式转换为长整型 (long) 或数字文字应添加“L”后缀,例如 oneYearWithoutL = 1000*60*60*24*365L。

以上是为什么将'L”添加到整数文字会改变乘法结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板