java - 双数返回 stackoverflow

标签 java function double stack-overflow

最高数字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 嵌套调用,这对于堆栈来说方式来说太多了,无法处理,因此会溢出。如果 sint 而不是 double,您也会遇到完全相同的问题。

关于java - 双数返回 stackoverflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445327/

相关文章:

java - Wildfly 9 忽略 web.xml 条目

c++ - 指针错误导致的段错误(简单...)

c - C 中结构和函数定义的导入错误

c# - 创建内联函数和宏

java - 双倍我的钱 : my framework uses doubles for monetary amounts

java - java中双变量出现的百分之一

Java:帮助构造 fillTextFields() 方法

java - 如何使用作业对象数组? (Jni)

java - 从 ResultSet 按行读取数据

c++ - 仅在线程休眠时评估为真