Java的格式化功能提供了很多占位符,可以把各种数据类型“格式化”成指定的字符串:
| 占位符 | 说明 |
|---|---|
| %f | 格式化输出浮点数 |
| %d | 格式化输出整数 |
| %s | 格式化字符串 |
题目
输入上次考试成绩(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, "%", "!!!");
}
}
总结
这里用到了两个格式化:
- %f 格式化输出浮点数, 而且这里用的是两位小数点 %.2f
- %s 格式化字符串,也就是字符串占位符
这里用到一个Scanner package
- 先 import java.util.Scanner
- 第二步就是创建一个 scanner 对象
- 第三步通过 scanner.nextDouble() 获取用户输入的值
- 通过公式 (本次成绩 - 上次成绩)/ 上次成绩 * 100 算出最后结果