java - 使用for循环时的除法问题

标签 java for-loop division

由于某种原因,每当我尝试运行此代码时,speed 仍保持在 0,并且将 i 计数到 x 然后 speed 突然变为 1.0speed 应该是 x 的小数,具体取决于 for 循环运行的次数。我不明白为什么会发生这种情况,非常感谢您能提供一些说明。

 double speed;
 int x = 200;

 for(int i = 0; i <= x; i++){
     speed = i/x;
     System.out.println("Speed- " + speed);
     System.out.println("Ticks- " + i);
 }

 for(int i = x; i >= 0; i--){
     speed = i/x;
     System.out.println("Speed- " + speed);
     System.out.println("Ticks- " + i);
 }  

最佳答案

试试这个:

double x = 200; // use a double instead of an int

问题?您将两个 int 相除,结果是另一个 int。通过将两个操作数之一转换为 double,除法现在将产生一个带小数的数字。

关于java - 使用for循环时的除法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923606/

相关文章:

Java 从包含句子的文本文件中提取单词或(搜索字符)的最佳方法

java - 在java中连接时客户端卡住

c - 从用户输入的数组中删除空格

javascript - 尝试返回递归组合函数而不得到 'undefined'

floating-point - 除以整数时最小化舍入误差

java - 如何将结构作为参数传递给 java 函数或从 jni 返回 java

java - Spring bean DTD 和 XMLNS

c++ - OpenMP 并行发送哪个元素?

ruby - Ruby 中具有负值的整数除法

sql - 意外的 SQL 除法结果?