我试图找到脂肪中卡路里的百分比,但我的输出永远不正确

时间:2011-11-08 22:19:13

标签: java

这是我的代码

import java.util.Scanner;
import java.text.DecimalFormat;

public class Calories
{
    public static void main (String[] args)
    {

    int fat;    //Grams of fat
    int fcal;   //Calories from fat
    int total;  //Number of Calories
    long result;    //Percent of calories from fat

    System.out.println("This program finds the percent of calories from fat");

    //Here the user inputs the numbers
    Scanner keyboard = new Scanner (System.in);
    System.out.print("Enter the total grams of fat " );

    fat = keyboard.nextInt();
    fcal = fat * 9;
    System.out.print("Enter the total number of calories " );

    total = keyboard.nextInt();
    result = fcal / total * 100;

    if(result <= 30)
    {
      System.out.println("Food is low in fat!");
    }
    DecimalFormat formatter = new DecimalFormat("#0");
    System.out.println("Calories from fat : " + formatter.format(result) + "%");
    }
}

无论我输入什么,我的输出总是为零。谁能告诉我这里我做错了什么?我不确定DecimalFormat,数据类型还是keyboard.nextInt();是我的问题的一部分,我已多次检查并询问另一个人说他们的代码运行正常。

1 个答案:

答案 0 :(得分:5)

您的fcaltotal变量都是整数,因此您执行整数除法。任何时候fcal < total,你总会得到0作为答案。

在进行划分时,你需要施展为双倍。

由于result被声明为long,因此不会有效,因此会有精度损失。要么更改result的数据类型,要么将结果转换回long