为什么使用整数与双精度?

时间:2015-11-16 22:17:10

标签: java integer double

我有相同功能的两个版本的代码:一个迭代和一个递归。我想知道返回类型为int的原因。它能带给你什么?为什么返回类型不能为double

public static int iterative(int n){
  int var=1;
  int var1=1;
  int var2=1;

  if (n<=1) {
    return 1;
  }

  for(int i=2;i<=n;i++){
    var=var1+var2+1;
    var2=var1;
    var1=var;
  }

  return var;
}

private static int recursive(int n){
  if (n<=1){
    return 1;
  }

  return rec(n-1)+rec(n-2)+1;
}

public static void main(String[] args) {
  System.out.println(iter(10));
}

1 个答案:

答案 0 :(得分:0)

您当然可以定义函数来返回double,就像您定义它以返回String一样。这些格式能够代表你将要返回的值,没有理由这样做。

  • 您正在计算的函数(修改后的Fibonacci序列)是在整数集上定义的 - 事实上,只有正整数。它永远不会产生无法用int表示的值。
  • double(和String)在空间和计算方面都更贵。
  • 返回类型强烈表明了其他开发人员期望的数据类型。返回仅包含double的{​​{1}}在某种程度上会产生误导。

如果你愿意,可以使用1, 2, 3, ...;它会工作得很好。但问题是“为什么?”比“为什么不呢?”。