Java新手求助
我想输入一个华氏度将它转为摄氏度,我输入的时候转不了。。。哪里错了?importjava.util.Scanner;publicclasslianxi{publicsta...
我想输入一个华氏度将它转为摄氏度,我输入的时候转不了。。。哪里错了?
import java.util.Scanner;
public class lianxi {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入华氏温度:");
double a = input.nextDouble();
double b = 5/9*(a-32);
System.out.println("摄氏度为:"+b);
}
} 展开
import java.util.Scanner;
public class lianxi {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入华氏温度:");
double a = input.nextDouble();
double b = 5/9*(a-32);
System.out.println("摄氏度为:"+b);
}
} 展开
展开全部
doublue b=5/9*(a-32);//此处的运算顺序是先算5/9;而后是后面的乘法
// ^两个int类型计算后得到的数据还是int类型,即5/9后得到的是0
//所以你不管怎么计算都会得到0才对。可以修改为:
double b=(a-32)*5/9;
//因为a是double类型的,所以后面的数据都会提升为doublue类型,这个称为“隐式转换”
//还有一种称为“强制转换”,如下:
double b=(double)5/9*(a-32);
//当然你也可以直接将5写成5.0就行了。关键就是要理解数据类型与数据类型的转换
// ^两个int类型计算后得到的数据还是int类型,即5/9后得到的是0
//所以你不管怎么计算都会得到0才对。可以修改为:
double b=(a-32)*5/9;
//因为a是double类型的,所以后面的数据都会提升为doublue类型,这个称为“隐式转换”
//还有一种称为“强制转换”,如下:
double b=(double)5/9*(a-32);
//当然你也可以直接将5写成5.0就行了。关键就是要理解数据类型与数据类型的转换
展开全部
你的代码没有错,但是你忽略了5/9=0,0*任何数都是0,所以你需要把double b = 5/9*(a-32);
改写成double b = 5.0/9.0*(a-32); 记住整数除以整数得到的是整数
改写成double b = 5.0/9.0*(a-32); 记住整数除以整数得到的是整数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这样是取整,在取了余加起来应该可以!!!前提是你公式正确!!希望能帮到你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去这下载www.java.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询