java - 飞行中的 split

标签 java division

<分区>

我正在尝试用 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;

谁能告诉我为什么会发生这种事情,我认为至少将其声明为 double 会返回一个值。如果有人知道,绕过它的方法。

最佳答案

在 Java 中,数字默认为 int。所以当你执行 5/9 时,因为它们都是 int,你会得到 0.something,因为这是一个 int,只会存储 0。解决方案:

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

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

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

关于java - 飞行中的 split ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21400191/

相关文章:

java - BootstrapClassLoader 未在委托(delegate)模型中加载

java - 如何找到生成 DocumentEvent 的源组件

java - 如何让ProgressDialog背景覆盖整个屏幕?

c - 除十六进制数时的奇怪行为

java - 在 Swing 中,文本区域中最好使用的监听器是什么

java - 一次从多个套接字接收数据(多线程)

c - 如何让我的代码显示 "You can' t 除以 0"

python - Python 中数字的除数

python - 如何通过 Python 中的 for 循环传递列表列表?

mysql - 关系划分 - MySql - 获取值名称