java - 两个浮点值相除得到零

标签 java double

我已经进入 python 和 scala 世界一段时间了,所以没有回复或解释器确实给我带来了调试的噩梦。我有以下代码:

int count = someInteger;
for (Map.Entry<String, Integer> entry : myMap.entrySet()) {
    if(!entry.getKey().equals("20") && top5 < 5) {
        String movie = entry.getKey();
        int xandy = entry.getValue();
        System.out.println(movie + "," + Float.toString(xandy / count));
        top5 += 1;
    }
}

这里的问题是我从设备中得到零。我认为我已经正确处理了类型变量。我已尝试提供的答案,但仍然不起作用,但问题仍然为零:

这是否会导致问题:

Note: Recompile with -Xlint:unchecked for details.

最佳答案

试试这个:

int count = someInteger;
for (Map.Entry<String, Integer> entry : myMap.entrySet()) {
    if(!entry.getKey().equals("20") && top5 < 5) {
        String movie = entry.getKey();
        int xandy = entry.getValue();
        System.out.println(movie + "," + Float.toString((float)xandy / (float)count));
        top5 += 1;
    }
}

注意 xandy 和 count 的 float 转换

关于java - 两个浮点值相除得到零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924437/

相关文章:

除法和 cout 的 C++ 问题

java - 如何从json创建java对象

java - 使用自定义键创建 KTable 时出错

java - 为什么当变量是字符串时程序打印数字?

c - Angelscript错误的类型转换

C: double 算术不精确

c++ - 长双增量运算符不适用于大数

java - Spring Batch - 从 Aws S3 读取文件

java - 如何创建用于绘图的 JPanel

两个 double 值的c++比较无法正常工作