Java只是在小数点上方?

时间:2014-12-10 22:49:09

标签: java netbeans

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

同样,如果我乘以1000超过两次,它会给出非常奇怪的数字。

这是代码

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

1 个答案:

答案 0 :(得分:1)

您确定您的代码甚至可以正确编译吗?

您的变量定义为 int ,但您尝试为其指定 double 值。

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

但无论如何,如果你想处理像481.500.000.000这样真正的大数字,你应该使用 BigInteger

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

举一个简单的例子来看看:

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());
    }

}