gpt4 book ai didi

Java 求和 2 个负数

转载 作者:行者123 更新时间:2023-11-29 10:06:59 25 4
gpt4 key购买 nike

我正在尝试将 java 中的函数转换为 pl/pgsql,我发现的一个问题是当我尝试对 2 个负数求和并得到一个正数时,更具体地说:

public void sum(){
int n1 = -1808642602;
int n2 = -904321301;
System.out.println(n1 + n2);// result is 1582003393
}

在 pl/pgsql 中,我得到一个整数超出范围的错误,如果我将变量类型更改为 bigint,我得到一个正常的 2 个负数之和,即 -2712963903,而不是 1582003393

如何让 pl/pgsql 获得相同的结果而不打印整数超出范围错误?

最佳答案

发生这种情况是因为 Java int 下溢并且没有告诉您。

要在 pl 中得到你正在寻找的答案,你需要使用 bigint。然后检测结果小于Java Integer.MIN_INT(-2^31)的情况,也就是Java会给出肯定结果的情况。要获得 Java 的功能,请添加 2^32。

关于Java 求和 2 个负数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5121698/

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