Java为什么这会给我;0";?

Java为什么这会给我;0";?,java,class,math,printing,output,Java,Class,Math,Printing,Output,这是我正在使用的代码的一部分,我们只应该从修复一些逻辑错误开始,因为错误的答案。我还发现了一些语法错误,这让编译器无法完成…我一直得到fToC的“0” //declaration statements final int BOILING_IN_F = 212; int fToC; string output; //there is other code between that has nothing //to do with outputting the boiling point. fT

这是我正在使用的代码的一部分,我们只应该从修复一些逻辑错误开始,因为错误的答案。我还发现了一些语法错误,这让编译器无法完成…我一直得到fToC的“0”

//declaration statements
final int BOILING_IN_F = 212;
int fToC;
string output;

//there is other code between that has nothing
//to do with outputting the boiling point.

fToC = (5/9) * (BOILING_IN_F - 32);
output = BOILING_IN_F + " in Fahrenheit is " + fToC
             + " in Celsius.";
System.out.println(output); //this is outputting 0 for fToC
System.out.println();
答案很有用,只是我需要在编译和运行程序之前将fToC声明为double。谢谢。

(5/9)
因整数除法而为0。试试
(5.0/9)

全文应为:

fToC = (5.0/9) * (BOILING_IN_F - 32);
(5/9)
因整数除法而为0。试试
(5.0/9)

全文应为:

fToC = (5.0/9) * (BOILING_IN_F - 32);

您正在使用
5/9
执行Java的整数除法,这必须导致另一个整数--
0
,因此结果是
0
。使用
double
文本强制浮点运算

fToC = (5.0/9.0) * (BOILING_IN_F - 32);

您需要
fToC
成为
double
(并将键入的
string output
更改为
string output
)。

您正在使用
5/9
执行Java的整数除法,这必须导致另一个整数--
0
,因此结果是
0
。使用
double
文本强制浮点运算

fToC = (5.0/9.0) * (BOILING_IN_F - 32);
您需要将
fToC
变为
双精度
(并将键入的
字符串输出更改为
字符串输出
)。

(5/9)
您将对两个整数进行下潜,因此这是截断的,因此它等于0。你把这个0乘以另一个数字

改为使用
(5.0f/9.0f)
来精确表示您的数字实际上是十进制数。

(5/9)
您正在对两个整数进行下潜,因此它被截断,因此等于0。你把这个0乘以另一个数字


使用
(5.0f/9.0f)
来精确说明您的数字实际上是十进制数字。

将int-fToC改为double-fToC不是更好吗?@AngeloAlvisi Correct;更新。将int fToC更改为双fToC不是更好吗?@AngeloAlvisi正确;更新了,谢谢,我想是这样的。我上学期试图修改公式时,把学过的一些Python弄混了。我感谢你的帮助,我对自己没有看到这一点感到很难过。但生活还在继续。我也意识到我需要将fToC声明为双重身份。在阅读了我的文章之后,我注意到Java不允许将double赋值给int,因为可能会丢失数据。我上学期试图修改公式时,把学过的一些Python弄混了。我感谢你的帮助,我对自己没有看到这一点感到很难过。但生活还在继续。我也意识到我需要将fToC声明为双重身份。在阅读了一些本文之后,我注意到Java不允许将可能是double的内容分配给int,因为可能会丢失数据。