2015-10-14 76 views
-7

用分母2到14打印一個包含分子小於分母的所有正確分數的十進制等值表。將小數點四捨五入到五個位置。[Java] - 這段代碼有什麼問題?

import java.text.*; 
public class Decimal 
{ 
    public static void main(String[] arg) 
    { 
     int d; 
     int n=1; 
     float Sum; 
     DecimalFormat Form = new DecimalFormat("0.00000"); 
     for(d=2;d<=14;d++) 
     { 
      do 
      { 


       Sum= n/d; 
       System.out.println(n+"/"+d+" "+Form.format(Sum));// Problem here I assume,why is the sum always Zero????!! 
          n++;  
      }while(n!=d); 
      n=1; 


     } 

    } 
} 

image

+1

好吧,只要你不解釋它應該做什麼**它實際做了什麼,它只是一段隨機的代碼。只是一個猜測,但你試圖用int來除1(int類型),這將導致0 – Paul

+0

打印一個由分母2到14(含)小於分母。將小數點四捨五入到五個位置。 – Basam

+1

然後它很簡單:使用'1.0/d'而不是'1/d',結果將是'double'而不是'int'。 'int'除以'int'總會產生一個整數,因此小數位只會被截斷,在您的情況下總是讓您的值爲0 – Paul

回答

0

您是通過INT將一個int;結果是一個整數。您必須將int中的一個轉換爲double數據類型才能獲得正確的結果。

Sum = (double)n/d;