2013-03-28 4 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

Возможный дубликат [неправильное разделение в java] (http://stackoverflow.com/questions/3553047/wrong-division-in-java) (и многие другие - я посмотрю, смогу ли я найти лучший) –

+0

Думаю, вам нужно придумать, чтобы он удваивался, когда вы делите. –

+1

Покажите нам пример ввода-вывода – Apurv

ответ

4

Это потому, что 1/2 равно 0, а не 0,5 при использовании int s. Попробуйте лить ваши ints в double s либо с (double) num/den, либо с 1.0 * num/den.

+0

Ах, это сработало спасибо и спасибо всем, кто ответил. – user1858350

1

Это следует сделать -

result = (double) num/den; 

В противном случае, результат INT/междунар будет ИНТ без дробной части.

+3

Без объясняя * почему * это так, это не очень полезный ответ IMO. –

Смежные вопросы