爪哇双除返回 0;数学检查 IRL

  • 本文关键字:IRL 返回 java
  • 更新时间 :
  • 英文 :


我正在编写一个非常简单的华氏度到摄氏度转换程序,该程序采用一个命名常量,并通过简单的计算将其转换为摄氏度(常量 - 32( * (5/9(

无论出于何种原因,每当我运行此程序时,它都会返回 0.0 摄氏度。数学在现实生活中检查出来,答案是 100,但无论出于何种原因,我总是从程序中得到 0.0。代码如下:

final double BOILING_IN_F = 212; // Boiling temperature
double fToC;                     // Temperature Celsius
fToC = (BOILING_IN_F - 32) * (5/9);
output = BOILING_IN_F + " in Fahrenheit is " + fToC + " in Celsius.";
System.out.println(output);

我知道在除整数时,任何小数都将作为一个整体返回,这就是我将变量更改为双精度的原因。即使如此,它仍然返回 0。我还尝试使用 float 作为我的数据类型,并在添加(不相关的(括号的同时切换计算。

5/9的计算结果为 0,因为舍入 0 的 0.5555555556 是 0,这是因为您使用的是整数除法。将其中一个整数更改为浮点数:

5 / 9.0

如果两个数字都是整数,则使用整数除法截断结果。其中一个操作数必须是非整数才能使用非整数除法。

替换

5/95.0/9.0.这将确保您获得适当的划分。5/9 = 0 而 5.0/9.0 = 0.555...

(5/9( 是整数除法,结果为 0。

最新更新