gpt4 book ai didi

java - 如何比较整数和长整型?

转载 作者:行者123 更新时间:2023-12-02 06:01:38 24 4
gpt4 key购买 nike

我试图检查长整数是否大于 INTEGER.MAX 值,但它不起作用。它非常直接,所以我只是想知道将 Integer 对象与 long 进行比较是否存在问题,因为否则我不知道问题是什么。当 nextTotal 值超过 INTEGER.MAX 时,它会变为负数,而不是打印错误消息。

public Integer initialValue=0;

int amount = Integer.parseInt(amountStr);
System.out.println("Received from client: " + amount);

long nextTotal=amount+initialValue;
if((nextTotal>Integer.MAX_VALUE)|| (nextTotal<Integer.MIN_VALUE)){
System.out.println("Error: Integer has not been added as the total exceeds the Maximum Integer value!");
out.flush();
}

else{
initialValue+=amount;
out.println(initialValue); //server response
System.out.println("Sending total sum of integers to the client:"+initialValue);
out.flush();
}
}

最佳答案

问题是您添加了两个 int,但它们尚未提升为 long,因此在转换为 之前就溢出了long,当然,int 永远不能大于 Integer.MAX_VALUE。它只会在赋值时转换为 long,这是在添加之后。

在加法之前转换为 long,并进行强制转换。

long nextTotal = (long) amount + initialValue;

关于java - 如何比较整数和长整型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22617892/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com