java - 双重运算的错误输出

标签 java double arithmetic-expressions

我是 Java 编程的初学者。当我编写一个简单的控制台应用程序时,它给出的输出不是我想要的。我的代码是:

class myClass{
    public static void main(String[] args) {
        int ballsPlayed = 100;

        double o = (double)(( ballsPlayed / 6 )  + ( ( ballsPlayed % 6) / 10 ));
        System.out.println(o);
    }
}

( ( ballsPlayed % 6)/10) 应为 0.4,因为 100/6 的余数为 4,而 4/10 必须给出 0.4。那么变量'o'必须给出16.4(16+0.4)。但我从控制台得到 16.0 作为输出。我犯了什么错误?

最佳答案

您必须将 ballsPlayed 类型转换为 double,因为 ballsPlayed 是一个整数。它返回 (ballsPlayed % 6)/10 的整数部分。因此除了 0.4 之外你得到了 0。

试试这个,

double o = (double)(( ballsPlayed / 6 )  + ((double) ( ballsPlayed % 6) / 10 ));

这里你会得到 16 + 0.4 = 16.4

关于java - 双重运算的错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988366/

相关文章:

java - 为什么以不同的顺序将三个 double 值相乘会得到不同的答案?

java - 随机选择一组 double

java - 如何将十六进制字符串转换为 double 型?

javascript - 将字母字符串转换为数字并递归求和,使它们低于某个最大值

c++ - 在 C++ 中使用 - 二元运算符从变量中取出 int 时发出警告。是什么原因?

java - 当参数是文字空值时,如何选择重载方法?

java - Hadoop:无法为您的平台加载 native hadoop 库。使用内置 java 类 > 在适用的情况下

C++ 列表迭代器算法

java - 将元素列表的列表转换为 Map < K, List<V>>

java - 尝试了解 GUI Swing 和线程