交作业啦
Topic source别忘了在java里整数除以整数,会忽略掉余数直接返回整数部分,先用(double)
将斜杠前面的数(或者说是分子/被除数)强转为浮点型,再去计算,才能得出精确结果,如我的:
package com.itranswarp.learnjava;
import java.util.Scanner;
/**
* 输入上次考试成绩(int)和本次考试成绩(int),然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入上次考试成绩:");
int prev = scanner.nextInt();
System.out.print("请输入本次考试成绩:");
int score = scanner.nextInt();
double percent = (double)(score - prev) / prev * 100;
System.out.printf("成绩提高了%.2f%%", percent);
}
}
应当是double precent= ((double)score-prev)/prev*100;
()优先级最高,(double)(score-prev)实则是计算完int型(score-prev)后将其int型结果转换为double型,如果运算为(double)(score/prev)则可能产生误差
- 1
杨森-ys
package com.itranswarp.learnjava;
import java.util.Scanner;
/**
* 输入上次考试成绩(int)和本次考试成绩(int)
* ,然后输出成绩提高的百分比,保留两位小数位(例如,21.75%)
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); //创建Scanner对象
System.out.print("Input last score:"); //提示输入上次成绩
float last_score = scanner.nextInt();
System.out.print("Input this score:"); //提示出入本次成绩
float this_score = scanner.nextInt();
float ti = (this_score - last_score)/last_score;
System.out.printf("成绩提高了%2f\n",ti);
}
} //可以添加if语句判断是提高还是下降,但是目前没有讲到就不会写了