Java基础关于方法的一个小作业
第一次发博客
学习到java基础中的方法部分,有一个课堂小作业
//
import java.math.BigDecimal;
import java.util.Scanner;
/**
* 自我练习:
* 水果计价
* 输入:水果名称,水果重量
* 处理逻辑:橘子:2元
* 西瓜:1.5元
* 芒果:4.9元
* 榴莲:12.9元
* 输出:水果的价格
* 最后结束,输出总价格
*/
public class MethodExercise {
//该方法用来处理浮点数相乘精度丢失问题
public static double mul(double v1,double v2){
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.multiply(b2).doubleValue();
}
public static double FruitPrice(String fruit,double weight){
double fruitprice = 0;
switch (fruit){
case "橘子":
fruitprice = mul(2,weight); //浮点数相乘,精度出现问题
break;
case "西瓜":
fruitprice = mul(1.5,weight);
break;
case "芒果":
fruitprice = mul(4.9,weight);
break;
case "榴莲":
fruitprice = mul(12.9,weight);
break;
}
System.out.println(fruit+"的总价格:"+fruitprice);
return fruitprice;
}
public static void main(String[] args) {
//循环计价,输出总价
double wholePrice = 0;
while (true) {
System.out.println("请输入水果(或输入exit退出):");
Scanner scanner = new Scanner(System.in);
String fruit = scanner.nextLine();
if(fruit.equals("exit")){
break;
}
System.out.println("请输入重量:");
Scanner scanner1 = new Scanner(System.in);
double weight = scanner1.nextDouble();
wholePrice += FruitPrice(fruit, weight);
}
System.out.println("总价格为:"+wholePrice);
}
}
运行结果如下: