
为什么java中9/5为1.8但是程序输出时1.0
packageMOOC;importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args...
package MOOC;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
int Fahrenheit;
Fahrenheit=in.nextInt();
int a = 9;
int b = 5;
double x;
x=(double)(Math.round(a/b)/100.0);
System.out.println(x);
System.out.println(" Celsius="+ ((Fahrenheit-32) / x));
}
}
哪里出了问题啊
下面是结果
100
0.01
Celsius=6800.0 展开
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
int Fahrenheit;
Fahrenheit=in.nextInt();
int a = 9;
int b = 5;
double x;
x=(double)(Math.round(a/b)/100.0);
System.out.println(x);
System.out.println(" Celsius="+ ((Fahrenheit-32) / x));
}
}
哪里出了问题啊
下面是结果
100
0.01
Celsius=6800.0 展开
展开全部
java中整数值默认为整形, 9/5为两个整形相除结果为整数,不会得出小数,故小数位舍弃了。9/5=1;
追问
那如何才能解决这个问题~让它以1.8的形式输出来呢?前面加double么~
追答
先把整形转换成double在计算,如9 * 1.0计算后就转化为double 在相除就可以了,或者直接a,b定义为double类型
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询