最高数字double
可以代表极高,我想。
尽管下面的代码会抛出异常。这实际上是我的完整代码。
public class Summe {
public static void main(String[] args) {
System.out.println(summe(20000));
}
public static double summe(double s) {
return s == 0 ? s : s + summe(s-1);
}
}
感谢您迄今为止的回答。我的问题是:我怎样才能让我的代码工作?
最佳答案
这里的问题不是 double 可以容纳的数字大小 - 问题是堆栈的大小。在这里,您对 summe
有 20K 嵌套调用,这对于堆栈来说方式来说太多了,无法处理,因此会溢出。如果 s
是 int
而不是 double
,您也会遇到完全相同的问题。
关于java - 双数返回 stackoverflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445327/