2015-11-03 150 views
3

所以,我正在製作一個程序,其中我有用戶插入分子和分母,程序將僞分數轉換爲小數。它工作正常,只是一件事。一個,如果我輸入一個重複小數的分數(例如1/3,0.3333333 ...),我想要麼它說0.33重複,要麼是無理數,它會圍繞它,讓我們說7個數字,並且然後停下來,然後有「......非理性」。我怎麼能這樣做?代碼如下。在Java中舍入小數

package Conversions; 

import java.util.*; 

public class FractionToDecimal { 

public static void main (String[] args) { 
    Scanner sc = new Scanner (System.in); 

    System.out.println("Enter Numerator: "); 
    int numerator = sc.nextInt(); 
    System.out.println("Enter Denominator: "); 
    int denominator = sc.nextInt(); 
    if (denominator == 0) { 
     System.out.println("Can't divide by zero"); 
    } 
    else { 
     double fraction = (double)numerator/denominator; 
     System.out.println(fraction); 
    } 
} 
}  
+1

@Reimeus編輯。謝謝。 –

+3

因此不適合讓別人爲您編寫代碼。你需要做自己的作業。繼續工作,當你有更具體的問題時,隨時提問。 –

+0

http://stackoverflow.com/questions/153724/how-to-round-a-number-to-n-decimal-places-in-java的副本 –

回答

2

您可以使用此:

DecimalFormat df = new DecimalFormat("#.######"); 
df.setRoundingMode(RoundingMode.CEILING); 

,只要你想小數添加儘可能多的#,然後OU可以簡單地使用這樣的:

Double d = 12345.789123456; 
System.out.println(df.format(d)); 

採用三#會給你例如上面的例子:12345.789

請注意,你當然可以選擇舍入模式。

小其他注意事項:下一次你提出一個關於SO的問題,請展示一些研究,這裏有成千上萬的關於這個的帖子和數以千計的在線教程。這將是很好的展示你已經嘗試過什麼,不起作用...