送货计划

时间:2014-02-01 20:43:00

标签: java output

所以我似乎正确地将大部分程序放在一起。问我偷偷摸摸我意识到我错过了一些东西并回去加入。现在当我运行程序进行最后的测试时,我意识到它不再正确计算里程。例如,我输入了500,并且在发送的里程数中将得到1。

input = JOptionPane.showInputDialog("Enter package weight: ");
  weight = Double.parseDouble(input);

  input = JOptionPane.showInputDialog("Enter approximate miles package is being shipped: ");
  miles = Integer.parseInt(input);
  miles = (miles+499)/500;

  input = JOptionPane.showInputDialog("Enter number of units shipped: ");
  units = Integer.parseInt(input);

我知道我没有正确地计算数学,以便找到每单位收取的正确金额,但现在关注的是我的输出中的里程显示不正确。有什么建议?谢谢!

2 个答案:

答案 0 :(得分:1)

假设miles被声明为double(如果不是,则应将其声明为double,以便为其分配实数)。这一行

miles = (miles+499)/500;

进行整数除法(int/int = int)。要获得双倍,你必须施展它:

miles = (double)(miles+499)/500;

或者,正如@Vulcan建议的那样

miles = (miles+499)/500.0; // here 500.0 is a double

答案 1 :(得分:0)

似乎miles变量的数据类型为int。请将其更改为double并重新运行该应用程序。

另外根据你的评论更新逻辑:

让您输入的输入为:

double weight = 7;   //input
double miles = 550;  //input
double unit = 2;     //input
double charges =0;   //charge of the shipment initialise with 0

charges = (3.70*miles*unit*weight)/(500*7);

System.out.println("The charges is "+charges);

1个单位的费用是每500英里每7磅重量3.70美元。

同时更新现有代码:

 miles = Integer.parseInt(input);  //Use double as conversion
 miles = (miles+499)/500;          // remove the line