gpt4 book ai didi

java - 检查整数是否太大

转载 作者:行者123 更新时间:2023-12-02 05:42:34 25 4
gpt4 key购买 nike

我正在开发一个交易系统,用户正在设置交易的价格和金额。

我想确保交换不大于整数最大值,但我遇到了问题。

当兑换金额设置为9或更多时,即使我有检查以确保该数字不大于最大值,但它不起作用。我做了一些调试,当将金额设置为 9 而价格为 2,147,483,646(比最大数字少 1)时,它会打印出以下内容:

2,147,483,630 - 9

这是我的调试代码,我应该添加什么以确保不会发生这种情况?

public void setPrimaryAmount(int primaryAmount) {
int price = primaryAmount * this.price;
System.out.println(Misc.format(this.price * primaryAmount) + " - " + primaryAmount);
if (price > Integer.MAX_VALUE ||
price == Integer.MAX_VALUE ||
price >= Integer.MAX_VALUE ||
price < 0 || price <= 0 ||
price++ == Integer.MAX_VALUE) {
System.out.println("Attempted to set a bad amount.");
return;
}
this.primaryAmount = primaryAmount;
}

打印出“尝试设置错误金额”,直到您输入的金额 >= 9。

最佳答案

您不能将值存储在 int 中,然后然后检查该值对于 int 是否太大。相反,将其存储在 long 中。

long price = (long)primaryAmount * (long)this.price;

关于java - 检查整数是否太大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20184631/

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