Java 为什么这给我 "0"?

标签 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.

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 执行 Java 的整数除法,结果必须是另一个整数 -- 0,所以结果是 0 .使用 double 文字强制进行浮点运算。

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

您需要将 fToC 设为 double(并将拼写错误的 string output 更改为 String output).

关于Java 为什么这给我 "0"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28075296/

相关文章:

java - 在 Java 运行时尝试从 jar 文件加载类时出现 ClassNotFoundException

math - Z80 组件 : How to add signed 8-bit value to 16-bit register?

java - LDAP jndi 连接(java + jboss eap 6)

java - JButton已添加,但不可见

c++ - 有没有更好的方法来初始化引用成员以引用同一个类中的另一个成员

c++ - 我怎样才能避免这种丑陋的嵌套类 C++ 代码

java - 如何解决 Java Rounding Double 问题

algorithm - 最小列总和差异是多少?

java - 判断圆是否相交

java - 为什么将一个变量赋值给另一个变量?