当前位置: 首页 > 面试题库 >

解析长到负数

史昀
2023-03-14
问题内容

码:

public class Main{
    public static void main(String[] a){
        long t=24*1000*3600;
        System.out.println(t*25);
        System.out.println(24*1000*3600*25);
    }
}

打印:

2160000000

-2134967296

为什么?

感谢所有的答复。

是在数字后使用L的唯一方法吗?

我已经尝试过了,(long)24*1000*3600*25但这也是负面的。


问题答案:

为了清楚地解释,

System.out.println(24*1000*3600*25);

在上面的声明中实际上是int文字。要将它们视为long文字,您需要在这些字符后缀L

System.out.println(24L*1000L*3600L*25L);

请注意,也可以使用一个小的l符号,但有时看起来像大写字母I1。资本I在这里没有多大意义,但阅读它1确实会给您带来困难。此外,即使将一个值设为,L也将得到结果long



 类似资料:
  • 问题内容: 我们有一个J2ME应用程序,需要读取十六进制数字。对于某些手机来说,该应用程序已经太大了,因此我们尝试不包括任何其他编解码器或编写我们自己的功能来执行此操作。 所有数字都是十六进制的64位有符号整数,当我们使用Long.ParseLong(hex,16)时,它可以正确处理正数,但对负数会抛出异常, 我们如何使用Java本身提供的类从十六进制字符串中获得-1? 有人可能建议我们应该像Ja

  • 问题内容: 我需要解析一个包含一个长数字的json(在Java servlet中产生)。问题在于长整数会四舍五入。 执行此代码时: 输出为: 在此处查看示例:http : //jsfiddle.net/huqUh/ 为什么会这样,我该如何解决呢? 问题答案: 正如其他人所说,这是因为数量太大。但是,可以通过将数字作为字符串发送来解决此限制,如下所示: 然后,您可以使用javascript-bign

  • 我有一个列包含描述,长度约为80000(包含unicode字符)。我无法将其加载到Azure Synapse Analytics。Synapse中定义的数据类型是nvarchar。我们使用的是Azure数据库。我尝试了带有maxStrLlong(. ption('maxStrLlong',4000))的选项,但最大值为4000。所以,我收到了这个错误。 : com.databricks.spark

  • 问题内容: 有没有一种方法可以创建JSR-310格式器,该格式器能够以可变的秒分数来解析以下两个日期/时间? 要么 示例代码: 问题答案: 这样可以解决问题: JiriS的答案不正确,因为它使用,而正确的方法是使用(它也处理小数点)。差异可以在第二个系统中看到,其中错误地解析了“2015-05-07T13:20:22.000276”。 在大多数情况下,解析时比直接使用格式化程序更整洁。 使用生成器

  • 问题内容: 我有这个代码: 为什么几次打印后会变成负片?如果超出范围,是否不应该发生错误? 问题答案: 如果将数字增加到最大值之后,Java不会抛出错误。如果您希望具有此行为,则可以使用Java 8中的方法。如果传递,则该方法将引发。 Java不会引发异常并且您收到负数的原因与数字的存储方式有关。对于长原语,第一个字节用于指示数字的符号(0->正号,1->负号),其余字节用于数字值。这意味着最大的

  • 414错误是由GET请求上的长URI参数引起的。这里和这里建议在这种情况下使用POST请求,但是,在GET请求的正文中发送数据不是更现实吗,即使不建议这样做?