簡體   English   中英

為什么使用整數而不是雙精度?

[英]Why use an integer versus a 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));
}

當然,您可以定義函數以返回double ,也可以將其定義為返回String 這些格式能夠表示您將要返回的值,沒有理由這樣做。

  • 您正在計算的函數(修改的斐波那契數列)是在整數集上定義的-實際上,只有正整數。 它永遠不會產生不能由int表示的值。
  • double (和String )在空間和計算上都更加昂貴。
  • 返回類型是對其他開發人員的強烈指示。 返回僅包含1, 2, 3, ...double精度在某種程度上具有誤導性。

因此,如果願意,請使用double 它會很好地工作。 但問題更多是“為什么?” 比“為什么不呢?”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM