2011-12-26 164 views
4

我有一個用於計算數據範圍的GUI Java代碼,例如,如果輸入了兩個值2.4443.555,結果將是一個長整數1.11100000...等。如何指定多少個應顯示小數點後的數字? (例如:%.2fJava:指定小數點後的數字

這是我的代碼:

public class Range 
{ 
    public static void main(String args[]) 
    { 
     int num=0; //number of data 
     double d; //the data 
     double smallest = Integer.MAX_VALUE; 
     double largest = Integer.MIN_VALUE; 
     double range = 0; 

     String Num = 
     JOptionPane.showInputDialog("Enter the number of data "); 
     num=Integer.parseInt(Num); 

     for(int i=0; i<num; i++)  
     { 
      String D = 
      JOptionPane.showInputDialog("Enter the data "); 
      d=Double.parseDouble(D); 

      if(d < smallest) 
       smallest = d; 
      if(d > largest) 
       largest = d; 
     } 

     range = largest - smallest ; //calculating the range of the input 

     JOptionPane.showMessageDialog(null,"Range = "+smallest+"-"+largest+" = "+range,"Range",JOptionPane.PLAIN_MESSAGE); 
    } 
} 

回答

8

您可以使用String.format來定義你喜歡的輸出,例如

String.format("Range = %.4f", range) 

顯示4位小數。

+0

是這個語句會在gui中顯示結果? – 2011-12-27 16:31:44

+0

此方法返回一個字符串表示形式,以便您可以替換'showMessageDialog'中的代碼。 – Howard 2011-12-27 16:34:45

3

DecimalFormat。下面的示例形式here

import java.text.DecimalFormat; 
import java.text.NumberFormat; 

public class DecimalFormatExample 
{ 
    public static void main(String[] args) 
    { 
     // We have some millons money here that we'll format its look. 
     double money = 100550000.75; 

     // By default to toString() method of the Double data type will print 
     // the money value using a scientific number format as it is greater 
     // than 10^7 (10,000,000.00). To be able to display the number without 
     // scientific number format we can use java.text.DecimalFormat wich 
     // is a sub class of java.text.NumberFormat. 

     // Below we create a formatter with a pattern of #0.00. The # symbol 
     // means any number but leading zero will not be displayed. The 0 
     // symbol will display the remaining digit and will display as zero 
     // if no digit is available. 
     NumberFormat formatter = new DecimalFormat("#0.00"); 

     // Print the number using scientific number format. 
     System.out.println(money); 

     // Print the number using our defined decimal format pattern as above. 
     System.out.println(formatter.format(money)); 
    } 
} 
+0

Thanx工作.. – 2011-12-27 16:31:54

-1

的DecimalFormat的這個實例添加到您的方法的頂部:

DecimalFormat three = new DecimalFormat("0.000"); 

// or this. this will modify the number to have commas every new thousandths place. 
DecimalFormat three = new DecimalFormat("#,##0.000"); 

// the three zeros after the decimal point above specify how many decimal places to be accurate to. 
// the zero to the left of the decimal place above makes it so that numbers that start with "0." will display "0." vs just "." If you don't want the "0.", replace that 0 to the left of the decimal point with "#" 

然後,把這個實例,並把它傳遞一個字符串顯示時:

String str = 4.651681351; 
display.setText(three.format(str)); // displays 4.652