所以我似乎正确地将大部分程序放在一起。问我偷偷摸摸我意识到我错过了一些东西并回去加入。现在当我运行程序进行最后的测试时,我意识到它不再正确计算里程。例如,我输入了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);
我知道我没有正确地计算数学,以便找到每单位收取的正确金额,但现在关注的是我的输出中的里程显示不正确。有什么建议?谢谢!
答案 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