【问题标题】:Java output fraction as a decimal programJava 输出分数作为十进制程序
【发布时间】:2013-03-28 06:45:51
【问题描述】:

我应该创建一个程序,该程序从用户那里获取分子和分母值,然后输出该分数的十进制值。但是,当我输入值时,我的输出是 0.000000。这是我的代码:

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);
}}

【问题讨论】:

  • wrong division in java 的可能副本(以及许多其他的 - 我会看看能不能找到更好的)
  • 我猜你需要在除法时将其类型转换为加倍。
  • 向我们展示一些输入输出示例
  • 另外,作为一种风格,最好在你有它的值的地方声明一个局部变量 - 而不是在方法开始附近声明所有东西,然后再分配一个值.
  • 应该是十进制形式的分数 3 / 4 是 0.75000 我的输出是十进制形式的分数 3 / 4 是 0.000000

标签: java decimal


【解决方案1】:

这是因为1 / 2 等于 0,而不是当您使用 ints 时的 0.5。尝试使用(double) num / den1.0 * num / den 将您的整数转换为doubles。

【讨论】:

  • 啊,这很有效,非常感谢你,感谢所有回复的人。
【解决方案2】:

应该这样做 -

result = (double) num / den;

否则,int / int 的结果将是不带小数部分的 int。

【讨论】:

  • 如果不解释 为什么 会这样,这不是一个非常有用的答案 IMO。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2023-04-04
  • 2014-03-13
相关资源
最近更新 更多