Discuss / Java / 练习题

练习题

Topic source

追风少年

#1 Created at ... [Delete] [Delete and Lock User]
Scanner scanner = new Scanner(System.in);
System.out.print("请输入上次考试的成绩:");
int scorePre = scanner.nextInt();
System.out.print("请输入本次考试的成绩:");
int scoreNow = scanner.nextInt();
float per = (float)(scoreNow - scorePre) / scorePre * 100;
System.out.printf("您的成绩提高了:%.2f%%\n", per);

#2 Created at ... [Delete] [Delete and Lock User]
(float)(scoreNow - scorePre) / scorePre * 100;

为啥前面要加(float)

Healer.

#3 Created at ... [Delete] [Delete and Lock User]
(float)(scoreNow - scorePre) / scorePre * 100;

整数减整数得整数,整数除以整数 scorePre,结果仍然是整数。最后,整数结果再乘以 100,得到的仍然是整数。如果希望得到一个浮点数结果,就需要在 (scoreNow - scorePre) 表达式前面加上 (float) 进行类型转换,将整数除法的结果转换为浮点数,从而得到期望的浮点数结果。

%.2f本身就是格式化浮点数,不用加(float)也是一样的结果

是需要加(float)的,我以为不用。。。


  • 1

Reply