我正在编写一个非常简单的Fahrenheit到Celsius转换程序,该程序采用命名常量并通过简单计算(常量 - 32)*(5/9)将其转换为摄氏温度
无论出于什么原因,每当我运行这个程序时,它都会返回0.0为Celcius.数学在现实生活中检查,答案是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);
Run Code Online (Sandbox Code Playgroud)
我知道在分割整数时,任何小数都将作为一个整体返回,这就是我将变量改为double的原因.即便如此,它还是返回0.我还尝试使用float作为我的数据类型,并在添加(不相关)括号时切换计算.
5/9求值为0,因为0.5555555556舍入为0为0,这是因为您使用的是整数除法.将其中一个整数更改为浮点数:
5 / 9.0
Run Code Online (Sandbox Code Playgroud)
如果两个数字都是整数,则使用整数除法来截断结果.其中一个操作数必须是非整数才能使用非整数除法.
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |