练习——柜台结账系统
需求
编写一个柜台结账系统:
- 依次输入单价、数量、收的金额
- 每输入一项给出提示
- 输出应找回的零钱
- 使用
double类型 - 当总价大于 1000 时,享受九折优惠
示例代码
public static void main(String[] args) {
System.out.println("请输入单价:");
Scanner scan = new Scanner(System.in);
double price = scan.nextDouble();
System.out.println("请输入数量:");
double number = scan.nextDouble();
System.out.println("请输入金额:");
double money = scan.nextDouble();
double total = price * number;
System.out.println("找回:" + (money - (total > 1000 ? total * 0.9 : total)));
}Code language: JavaScript (javascript)
逻辑拆解
| 步骤 | 说明 |
|---|---|
| 输入单价 | price,double 类型 |
| 输入数量 | number,double 类型 |
| 计算总价 | total = price * number |
| 输入收款 | money,double 类型 |
| 判断折扣 | 总价 > 1000 时打九折,否则按原价 |
| 计算找零 | money - 实际应付金额 |
运行示例
请输入单价:
120
请输入数量:
10
请输入金额:
1000
找回:40.0Code language: CSS (css)
总价 1200 > 1000,享受九折后应付 1080,收款 1000,找回 40。
改进建议
实际开发中找零金额建议保留两位小数,可使用 DecimalFormat 或 String.format("%.2f", value) 格式化输出:
System.out.println(String.format("找回:%.2f", (money - (total > 1000 ? total * 0.9 : total))));Code language: CSS (css)
注意:金额计算涉及
double精度问题,后续学习BigDecimal后可进一步改进。
Previous: 练习——判断闰年
Next: 程序流程结构——分支