Discuss / Java / 交作业了

交作业了

Topic source

import java.util.Scanner;

public class Main{

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.print("Input your last score:");

int lscore = scanner.nextInt();

System.out.print("Input your present score:");

int pscore = scanner.nextInt();

float increase=((float)(pscore-lscore)/lscore)*100;

System.out.printf("%.2f%%\n",increase);

}

}链接文字

float increase=((float)(pscore-lscore)/lscore)*100;

请教一下,这里为什么一定要加(float)转型,整形计算时不是可以自动提升为浮点型吗?我不加强制转型结果一直是0.00

国足之力

#3 Created at ... [Delete] [Delete and Lock User]

我也是,如果前边的类型也是float 的话就不用再加强制转型了。

末子网络

#4 Created at ... [Delete] [Delete and Lock User]

需要特别注意,在一个复杂的四则运算中,两个整数的运算不会出现自动提升的情况。例如:

double d = 1.2 + 24 / 5; // 5.2

计算结果为5.2,原因是编译器计算24 / 5这个子表达式时,按两个整数进行运算,结果仍为整数4


  • 1

Reply