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);

}

}
展开
 我来答
zxl141421
2013-07-04
知道答主
回答量:13
采纳率:0%
帮助的人:6.5万
展开全部
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就行了。关键就是要理解数据类型与数据类型的转换
忧郁的trouble
2013-07-04
知道答主
回答量:50
采纳率:0%
帮助的人:15.8万
展开全部
你的代码没有错,但是你忽略了5/9=0,0*任何数都是0,所以你需要把double b = 5/9*(a-32);
改写成double b = 5.0/9.0*(a-32); 记住整数除以整数得到的是整数
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cm1173d4ee
2013-07-04 · TA获得超过300个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:156万
展开全部
你这样是取整,在取了余加起来应该可以!!!前提是你公式正确!!希望能帮到你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1301284238
2013-07-04
知道答主
回答量:27
采纳率:0%
帮助的人:8万
展开全部
去这下载www.java.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式