格式化输出成绩提高的百分比 (java)

题目
请帮小明同学设计一个程序,输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)。

思路
按照题目要求,通过Scanner类输入两次的成绩,并且两次成绩定义都是整型int,然而输出这里要输出小数,所以在进行百分比计算时首先进行强制转换为小数格式:(double),利用java在做运算时如果有double类型则首先转换为double类型再运算。

在输出格式时,要输出百分比,则应首先对上面的结果乘以100,然后再保留两位小数即可。

代码

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入上次考试成绩:");
        int lastScore = sc.nextInt();
        System.out.println("请输入本次考试成绩:");
        int thisScore = sc.nextInt();
        double percentOfScoreImprove = ((double)thisScore-lastScore)/lastScore*100;
        System.out.printf("成绩提升了:%.2f%%",percentOfScoreImprove);
    }

输出
在这里插入图片描述

注意

  1. 整数之间的运算得到的结果为整数部分,即也是整数,非四舍五入,而是保留整数部分
  2. 不同类型的整数运算时结果为较大类型的整型,如int和short进行运算时结果为int,因为short首先会被转换为int类型。
  3. 浮点数无法精确表示,如0.1换算为计算机中表示数的二进制就是无限循环小数,所以称为浮点数,float和double都是。比较浮点数是否相等一般常用浮点数之差是否小于一个很小的数。
  4. 整型和浮点型之间运算时整型会自动被提升为浮点型。但是两个整型运算没办法提升为浮点型,结果仍为整数部分。
发布了46 篇原创文章 · 获赞 17 · 访问量 992

猜你喜欢

转载自blog.csdn.net/weixin_42054926/article/details/104071400
今日推荐