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 |