2013-06-27 85 views
0

我的程序已準備就緒我認爲,但是,我似乎無法輸出數字,如「3.2」或「5.2」。出於某種原因,它只是將值返回爲2.0或3.0或4.0,如最後一個帶有.0的整數。任何幫助?Java:錯誤:可能會丟失精度

import java.io.Console; 
import java.util.Scanner; 
/** 
* 
* @author binka 
*/ 
public class Samelson_Lincoln_Lab6 { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     Scanner in = new Scanner(System. in); 
     System.out.println("Please enter a number?"); 
     int number = in .nextInt(); 
     double[] array = new double[number]; 
     System.out.println(); 
     int sign = 0; 
     double term = 0; 
     for (int i = 1; i < array.length; i++) { 
      if (sign == 0) { 
       term = Math.abs((4.0/((2.0 * i) - 1.0))); 
       array[i] = term; 
       sign = 1; 
      } else if (sign == 1) { 
       term = ((4.0)/((2.0 * i) - 1)); 
       array[i] = -term; 
       sign = 0; 
      } 
      System.out.println(array[i]); 
     } 
     boolean choice = true; 
     while (choice = true) { 
      System.out.println("Would you like to see the sum?: (Y or N)"); 
      String choicesum = in .next(); 
      choicesum.toUpperCase(); 
      if ("Y".equals(choicesum)) { 
       double sum = computeSum(array); 
       System.out.println("Your sum is: " + sum); 
       choice = false; 
       break; 
      } else if ("N".equals(choicesum)) { 
       System.out.println("See ya!"); 
       choice = false; 
       break; 
      } else { 
       System.out.println("Not a correct response, try again!"); 
      } 
     } 
    } 

    public static int computeSum(double[] array) { 
     double sum = 0; 
     for (int i = 0; i < array.length; i++) { 
      sum = sum + array[i]; 
     } 
     return sum; 
    } 
} 

回答

8
while (choice = true) { 

至少應該

while (choice == true) { 

甚至更​​好

while (choice) { 

要解決實際的錯誤,從

改變你的方法簽名
public static int computeSum(double[] array) { 

public static double computeSum(double[] array) { 
+0

太謝謝你了。這正是我正在尋找的。 – Binka

+3

也許你想展示一些愛到SO並接受答案? –

+1

新手這個網站,我該怎麼做?哦,大對號,得到它:) – Binka