当前位置: 首页 > 知识库问答 >
问题:

如何强制Java打印出大量数字而不使用Long或Double?[副本]

高明辉
2023-03-14

所以我目前正在使用此代码来计算人口增长:

import java.util.Scanner;

public class PopulationGrowth
{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int totalP = 0;

        System.out.print("Enter Starting Populatino: ");
        int startingP = sc.nextInt();

        System.out.print("Enter Growth Rate: ");
        int growthR = sc.nextInt();

        System.out.print("Enter amount of time it takes to achieve this growth: ");
        int timeI = sc.nextInt();

        System.out.print("Enter Total Amount of Time: ");
        int totalTime = sc.nextInt();

        int intervals = totalTime / timeI; 
        for(int i = 0; i < intervals; i++)
        {
            long finalP = startingP * growthR;
            System.out.println(finalP);
            growthR += growthR;
        }

    }

}

它工作正常,但是如果我输入一个大数字,我会得到这个输出:

65536000
131072000
262144000
524288000
1048576000
2097152000
-100663296
-201326592
-402653184
-805306368
-1610612736
1073741824
-2147483648
0
0
0
0
0
0
0
0
0
0
0
0
0

请注意,如果您查看我的代码,您可以看到我尝试使用long类型,但不幸的是,这不起作用

Java有没有一种不使用long或double打印大量数据的方法

共有1个答案

张毅
2023-03-14

我试着使用长字体,但不幸的是,这不起作用

long finalP = startingP * growthR;

只要启动p和增长r仍然是int,此计算仍将使用32位整数完成(并且仅在您已经遇到溢出时才转换为64位整数)。

您可以将所有变量更改为long。然后您将能够处理更大的数字,但最终这些数字也会溢出。

Java有没有一种方法可以在不输入负片和0的情况下打印大量数据

根据应用程序的需要,您可能需要查看无限精度的BigInteger或浮点数,例如double(它可以表示更大的数量,但在较低的数字中会丢失精度,这在这里似乎是可以接受的)。

 类似资料:
  • 问题内容: 在工作时,我得到了警告 而且我找不到在线替代构造函数/解决方案。我该如何解决这个问题? 更新 对于其他原始包装器类型的构造函数,我将收到类似的警告;例如 是否对这些类适用相同的解决方案? 问题答案: 您可以使用 从构造函数的javadoc中: 不推荐使用。很少适合使用此构造函数。通常,静态工厂valueOf(int)是更好的选择,因为它可能会产生明显更好的空间和时间性能。构造一个新分配

  • 所有的代码是正确的,除了行,我有数组,并试图打印他们(第5-6行)。如何打印数组?

  • 问题内容: 使用时,Double将添加逗号(5143打印为5,143)。如何禁用逗号? 问题答案: 您的问题属于Rorick正确指出的语言环境。但是,您应该查看DecimalFormat类,以防更改Locale意味着弄乱了所有东西。 查看NumberFormat类,以处理千位分隔符。因为看来您的情况是关于千位分隔符。

  • 我试图键入数组,但得到 我在谷歌上搜索了一下,我知道了关于这个例外的一切,但是我不能做任何事情来解决这个愚蠢的问题。

  • 问题内容: 我想更改网页上的某些内容。我也想隐藏一些东西。打印时,有没有办法用CSS做到这一点?我尤其希望能够隐藏一些DIV及其包含的所有DIV。 问题答案: 可以使用单独的打印样式表来实现。该属性是关键:

  • 问题内容: 我需要打印上面有几个背景图像的报告页面。但是只有这些图像无法打印。这些图像实际上是图形的徽标,因此在报告中非常重要。 我还有另一个选择,可以裁剪它们并将其作为标记包含在页面中,但这是最后一个选择。因此,在此之前,我想知道是否有任何方法可以强制打印这些图像?有人可以帮我吗? 问题答案: 默认情况下,浏览器在打印页面时将忽略后台CSS规则,并且您无法使用CSS克服此问题。 用户将需要更改其