Java只是修饰了一个小数位?

Java只是修饰了一个小数位?,java,netbeans,Java,Netbeans,所以我试图做一个相对简单的程序,但我遇到了java的整数限制。这个数字是4715亿。一位朋友建议我将481.5乘以1000几次,以便输出正确的数字。当我这样做时,无论我做什么,输出都是481乘以1000 同样,如果我乘以1000两倍以上,它会给出奇数 这是密码 int debt1 debt1 = 481.5; system.out.println(debt1 * 1000 * 1000 * 1000); 你确定你的代码编译正确吗 您的变量被定义为int,但您尝试为其指定一个双值 如果将变量

所以我试图做一个相对简单的程序,但我遇到了java的整数限制。这个数字是4715亿。一位朋友建议我将481.5乘以1000几次,以便输出正确的数字。当我这样做时,无论我做什么,输出都是481乘以1000

同样,如果我乘以1000两倍以上,它会给出奇数

这是密码

int debt1 
debt1 = 481.5; 
system.out.println(debt1 * 1000 * 1000 * 1000);

你确定你的代码编译正确吗

您的变量被定义为int,但您尝试为其指定一个双值

如果将变量类型更改为
double,它可以保存您尝试分配给它的值481.5

但是在任何情况下,如果你想处理像481500.000.000这样的大数字,你应该使用biginger

请注意,使用BigInteger,您将无法在IDE中简单地编写数字(因为没有内置java类型可以处理如此大的数字)。正如上面所说的,您可以通过使用数字的字符串表示或通过多种方式指定数字来创建大整数

有关一个简单的示例,请看以下内容:

import java.math.BigInteger;

class Example {

    public static void main(String[] args) {
        BigInteger debt = new BigInteger("481500000000");
        debt = debt.add(new BigInteger("12312"));
        System.out.println(debt.toString());
    }

}

你得到了什么真正的奇数?你会想了解数据类型是什么。Int不能保存分数,所有数字类型的最大值为3633715。它在运行时没有问题,也没有警告。您可能需要考虑使用BigDigBoo.<代码> BigInteger < /代码>必须以不同于正常原语的方式使用;您无法使用它执行
*
+
操作。尝试使用BigInteger时,我的IDE似乎不知道如何使用它。它不是大多数IDE中的标准吗?如果更改为双精度,输出(无乘法)为481.0,则需要导入类:import java.math.biginger;