Java三种商品总价格大于3500或者某种商品总价大于5000,则打三折,否...
最后的打折计算浮点数直接计算有误差,所以打折后的总金额可能与手算的在精度上有误差。实际场景中一般计算金额都是用BigDecimal。
然后题目的逻辑有点问题,某种商品的总价大于5000了,那这三种商品的总价也是必然大于3500,而且这两种情况的折扣是一样的。所以其实此处“三种商品总价格大于3500或者某种商品总价大于5000,则打三折”等价于“三种商品总价格大于3500打三折”。都可以不判断5000这个条件的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import java.util.Scanner;public class Demo { public static void main(String[] args) { System.out.print( 请依次输入三种商品的价格,以空格分隔(输入完成后按回车确认)\r\n价格: ); Scanner scanner = new Scanner(System.in); float price1 = scanner.nextFloat(); float price2 = scanner.nextFloat(); // 若此价格大于5000则3折 float price3 = scanner.nextFloat(); float sum = price1 + price2 + price3; // 商品总价格大于3500或者商品2总价大于5000 if (sum > 3500 || price2 > 5000) { System.out.println( 三折,折后总结为: + (sum * 0.3)); } else { System.out.println( 八折,折后总结为: + (sum * 0.8)); } }} |
if(summoney>3500|Product.price>5000){
topay = 0.3*summoney;
}else if{
topay = 0.8*summoney;
}
1 |
java:某商场给顾客的折扣率如下 购物金额小于200,不打折。购物金额大于...
这是java的基础问题, 主要考察的就是if else的使用.
参考代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class SearchFrame { public static void main(String[] args) { double m=520; computeMoney(m); double m1=5000; computeMoney(m1); } //此方法用于计算 折扣 和应付金额 public static void computeMoney(double m) {// m为购物金额 double rate = 1.0;// rate代表折扣率;初始折扣率是 if (m >= 5000) { rate = 0.65; } else if (m >= 1000) { rate = 0.7; } else if (m >= 500) { rate = 0.8; } else if (m >= 200) { rate = 0.9; } // pay为实际应付金额 double pay = m*rate; //注意,输出的时候,日常生活中习惯上, 折扣不是用0.65来表示, 而是6.5表示,所以需要乘10 System.out.println( 购物金额: +m+ \t折扣: +rate*10+ \t实际应付金额: +pay); }} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.util.Scanner;/** * @ClassName DiscountUtil * @Description TODO * @Author dell * @Date 2019/5/29 9:20 * @Version 1.0 **/public class DiscountUtil { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println( 请输入金额: ); while (true) { try { int money = Integer.parseInt(scanner.nextLine()); calculate(money); } catch (Exception e) { System.out.println( 请输入数字 ); } } } private static void calculate(int money) { if (money < 200) { System.out.println( 折扣率: + 10 + 折,实际付款金额 + money * 1.0); } else if (money < 500) { System.out.println( 折扣率: + 9 + 折,实际付款金额 + money * 0.9); } else if (money < 1000) { System.out.println( 折扣率: + 8 + 折,实际付款金额 + money * 0.8); } else if (money < 5000) { System.out.println( 折扣率: + 7 + 折,实际付款金额 + money * 0.7); } else { System.out.println( 折扣率: + 6.5 + 折,实际付款金额 + money * 0.65); } }} |
这个商场,有点儿太抠门,打折的幅度太小。不过人家这样打折你愿意买就买呗。不买没有强求。
用java写出商品打折程序
尝试解答一下,这个里面还有老年和教师的判断就省略,主要是打折的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import java.util.Scanner;class Test{ public static void main (String[] args){ Scanner sc = new Scanner(System.in); System.out.println( 请输入消费的金额: ); double oldprice = sc.nextDouble(); double newprice; if(oldprice >= 2000){ newprice = oldprice * 0.85; }else if(oldprice >= 1000 && oldprice < 2000){ newprice = oldprice * 0.9; }else newprice = oldprice; Judge jud = new Judge(); if(jud.isTeacher()|| jud.isOldman()) newprice = newprice * 0.95; System.out.println( 打折后的价格是: + newprice); System.out.println( 折扣的程度是: + newprice / oldprice); } }class Judge{ public boolean isTeacher(){ boolean isTeacher = false; return isTeacher; } public boolean isOldman(){ boolean isOld = false; return isOld; }} |
if条件{满足条件执行}else if 条件{满足条件执行}else{满足条件执行}
上述的条件就是总的消费金额,比如消费金额大于等于2000,执行消费金额打85折。
上述的条件就是总的消费金额,比如消费金额大于等于2000,执行消费金额打85折。