JAVA - 请帮小明同学设计一个程序,输入上次考试成绩和本次考试成绩,然后输出成绩提高的百分比,保留两位小数位。

334 阅读1分钟

Java的格式化功能提供了很多占位符,可以把各种数据类型“格式化”成指定的字符串:

占位符说明
%f格式化输出浮点数
%d格式化输出整数
%s格式化字符串

bottom.png

题目

输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)

解答

package com.itranswarp.learnjava;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        // 获取上次的成绩
        System.out.print("输入上次考试成绩: ");
        double prev = scanner.nextDouble();

        // 获取本次的成绩
        System.out.print("输入本次考试成绩: ");
        double score = scanner.nextDouble();

        // 获取成绩提高百分比 公式是: (本次成绩 - 上次成绩)/ 上次成绩 * 100
        double res = (score - prev) / prev * 100;
        
        // 输出结果 %.2f 代表保留两位小数点 %s代表字符串占位符,为了理解我在后面加了一个!!!的符号,就是字符串占位的意思。
        System.out.printf("成绩提高了%.2f%s%s", res, "%", "!!!");

    }
}

bottom.png

总结

这里用到了两个格式化:

  • %f 格式化输出浮点数, 而且这里用的是两位小数点 %.2f
  • %s 格式化字符串,也就是字符串占位符

这里用到一个Scanner package

  • import java.util.Scanner
  • 第二步就是创建一个 scanner 对象
  • 第三步通过 scanner.nextDouble() 获取用户输入的值
  • 通过公式 (本次成绩 - 上次成绩)/ 上次成绩 * 100 算出最后结果