读入长宽计算面积,格式化输出,并处理异常

【问题描述】
编写一个程序,让用户输入两个数值作为长方形的长和宽,计算两个数值的成绩作为面积并输出结果,要求:
1.支持小数作为长宽
2.结果一律保留两位小数(可通过BigDecimal或NumberForamt两种方式实现,请都尝试使用)
3.用户有可能输入错误,输入的不是数值,程序检测出异常不再进行计算,直接输出input error
【样例输入】
3 5
【样例输出】
15.00
【样例输入】
0.2 0.7
【样例输出】
0.14
【样例输入】
12 3.531
【样例输出】
42.37
【样例输入】
12 1c3
【样例输出】
input error


import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.Scanner;

public class test1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        String b = sc.next();
        double a1 = 0.00;
        double b1 = 0.00;
        try {
            a1 = Double.parseDouble(a);
            b1 = Double.parseDouble(b);
            //法一
            //        BigDecimal bd = BigDecimal.valueOf(a1*b1);
//        BigDecimal area = bd.setScale(2, RoundingMode.HALF_UP);
//        System.out.println(area);

//法二
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(2);
            nf.setMinimumFractionDigits(2);
            nf.setRoundingMode(RoundingMode.HALF_UP);
            nf.setGroupingUsed(false);
            String area = nf.format(a1*b1);
            System.out.println(area);
        } catch (Exception e) {
            System.out.println("input error");
        }


    }
}

如果对数字的小数点后保留几位的操作感兴趣的,可以查看这篇文章
保留几位小数的5种常见方法
上面这个文章所在的专栏后续会继续更新,如有需要请关注

发布了28 篇原创文章 · 获赞 13 · 访问量 3574

猜你喜欢

转载自blog.csdn.net/weixin_46192593/article/details/105110266
今日推荐