分部在飞

 马佳叮 发布于 2023-01-30 20:21

我正在尝试用Java创建一个小程序,将华氏温度转换为摄氏温度.它涉及扣除32并乘以5/9.所以我这样做了.

double Fahrenheit = 100;
double celsius = (Fahrenheit - 32) * (5/9);
System.out.println(celsius);

但由于某种原因,5/9返回零,甚至毁掉了它

double s = 5/9;

返回零,我不知道为什么.我发现我能做到的唯一方法是,如果我宣布一切,并逐步进行.

double x = 5, p = 9, n = (x/p), Fah = 100;
double Cel = Fah - 32;
Cel = Cel*n;

任何人都可以告诉我为什么会发生这种事情,我认为至少将它声明为双重会返回一个值.如果有人知道,可以绕过它.

1 个回答
  • intJava中默认使用数字.所以当你这样做时5/9,因为它们都是ints,你会得到0.something,因为这是一个int,所以只存储0.解:

    double s = 5.0/9; //or 5d/9
    

    请注意,您只能显式地转换一侧,另一侧将被隐式转换.

    现在计算将以某种double方式进行,您将获得所需的结果.

    2023-01-30 20:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有