java小案例:超市收银系统

超市收银

为超市开发一个简易的收银系统

提示用户输入商品编号和数量,然后显示总价多少钱

提示用户输入付款金额,然后显示找零多少

package cn.xtnotes.u3;

import java.util.Scanner;

public class T8_1 {

	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		
		String num1="1";
		String name1="苹果";
		double price1=6.8;
		
		String num2="2";
		String name2="葡萄";
		double price2=9.5;
		
		String num3="3";
		String name3="香蕉";
		double price3=8.1;
		
		System.out.println("欢迎进入超市收银系统");
		System.out.println("请输入购买的商品编号");
		String num=input.next();
		System.out.println("请输入购买的商品数量");
		double count=input.nextDouble();
		
		double price=0;
		String name="";
		
		if(num.equals(num1)) {
			price=price1;
			name=name1;
		}else if (num.equals(num2)) {
			price=price2;
			name=name2;
		}else if (num.equals(num3)) {
			price=price3;
			name=name3;
		}else {
			System.out.println("没有该商品");
		}
			
		System.out.println("你购买的商品是"+name+"数量是"+count+"总价是"+price*count);
		//找零
		double zongjia;
		zongjia=price*count;

		System.out.println("请输入用户付款金额:");
		double comPrice=input.nextDouble();
	
		double yu=comPrice-zongjia;
		
		if(comPrice>=zongjia) {
			System.out.println("需要找零:"+yu);
		}else if (comPrice<=zongjia) {
			System.out.println("金额不足");
		}

	}

}

实际开发中,double计算可能出现误差,如下图

double误差

double误差可以通过

DecimalFormat解决

package cn.xtnotes.u3;

import java.text.DecimalFormat;

public class T8_2 {

	public static void main(String[] args) {
		double a=15.3;
		double b=3;
		
		DecimalFormat df=new DecimalFormat("0.00");
		String s=df.format(a/b);
		double re=Double.valueOf(s);
		
		System.out.println(s);

	}

}

输出:5.10

 

阅读剩余
THE END