2013-03-28 3 views
0

사용자로부터 분자와 분모 값을 취하여 그 분수의 십진수 값을 출력하는 프로그램을 작성해야합니다. 그러나 값을 입력하면 출력은 0.000000입니다. 여기에 내 코드입니다 :십진법 프로그램으로 Java 출력 분수

import java.util.Scanner; 
import java.util.Random; 
public class fraction 
{ 
    public static void main (String [] args) 
    { 
     int num; 
     int den; 
     double result; 


     num = getNum(); 
     den = getDen(); 
     result = getResult(num, den); 

    printResult(num, den, result); 

    } 

    public static int getNum() 
    { 
    Scanner input = new Scanner (System.in); 

    int num; 

    System.out.print("Please enter the numerator: "); 
    num = input.nextInt(); 

    return num; 

    } 

    public static int getDen() 
     { 
     Scanner input = new Scanner (System.in); 

     int den; 

     System.out.print("Please enter the denominator: "); 
     den = input.nextInt(); 

     return den; 

     } 


public static double getResult(int num, int den) 
{ 
    double result; 
    result = num/den; 
    return result; 
} 

public static void printResult(int num, int den, double result) 
{ 
System.out.printf("The fraction %d/%d in decimal form is %f\n", num, den, result); 
}} 
+0

(자바 스크립트에서 잘못된 부분) (http://stackoverflow.com/questions/3553047/wrong-division-in-java) (그리고 다른 많은 것들 - 나는 더 나은 것을 찾을 수 있는지 보겠습니다) –

+0

나눌 때 두 배로 타이프해야 할 것 같네요. –

+1

몇 가지 샘플 입출력 – Apurv

답변

4

1/2이 0과 같고 int을 사용할 때 0.5가 아니기 때문입니다. int를 또는 1.0 * num/den과 같이 double으로 전송 해보세요.

+0

아, 답변을 주신 모든 분들께 진심으로 감사드립니다. – user1858350

1

이 무엇을해야 - 그렇지

result = (double) num/den; 

, INT/INT의 결과는 소수 부분없이 INT 될 것이다.

+3

없이 왜 그런지 설명하는 것은 끔찍하게 유용한 해답이 아닙니다. –