【发布时间】:2018-03-18 04:23:41
【问题描述】:
import java.util.*;
import java.math.*;
public class Arithmetic
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
double mealCost = scan.nextDouble(); // original meal price
double tipPercent = scan.nextDouble(); // tip percentage
double taxPercent = scan.nextDouble(); // tax percentage
scan.close();
// Write your calculation code here.
tipPercent = mealCost*tipPercent/100.0;
taxPercent =mealCost*taxPercent/100.0;
//cast the result of the rounding operation to an int and save it as totalCost
double totalCost = mealCost + tipPercent + taxPercent;
// Print your result
int total = (int)totalCost;
System.out.println("The total meal cost is " + total + " dollars.");
}
}
输入:
20.75
10
3
预期产出:总餐费为 23 美元。
结果输出:总餐费为 26 美元。
这个程序有什么问题?
【问题讨论】:
-
你调试你的程序了吗?您是否验证了各个步骤产生了正确的结果?为什么使用值
20和8? -
你没有使用你的输入参数,而是用硬编码的数字覆盖它们.....
-
您的预期结果不应该是 33 美元吗?只需简单地将所有三个相加即可得到 33.75!
-
@ᴳᵁᴵᴰᴼ 好的。但即使我使用了输入参数,它在其他测试用例中也失败了,即输入 10.25 17 5 产生的 o/p:总餐费是 12 美元。但预计是:总餐费是13美元。
-
@vijay_ky 输入
10.25 17 5我得到了结果The total meal cost is 13 dollars.这里的确切问题是什么?另外,如果不应该是13,那么请告诉我们您实际上是如何计算您的预期结果的!
标签: java math casting percentage