相关疑难解决方法(0)

为什么整数除法代码给出了错误的答案?

我在Java中有一个非常简单的划分(它是每小时的产品数量/产量),但每当我进行这个划分时,我都会遇到奇怪的错误:

float res = quantity / standard;
Run Code Online (Sandbox Code Playgroud)

我已经尝试了上面的几个值的分区,但我总是得到错误,但是我在其他地方尝试并且正确的那个是这样的:

世界各地:

13.6 = 6800 / 500;
Run Code Online (Sandbox Code Playgroud)

Java的:

13.0 = 6800 / 500;
Run Code Online (Sandbox Code Playgroud)

我已经研究过BigDecimal和BigInteger,但是我还没有找到用它们创建这个除法的方法,有没有其他方法在Java中进行这种划分而没有精度错误?

任何帮助将不胜感激.

java floating-point division integer-division

29
推荐指数
1
解决办法
6万
查看次数

在Java中执行计算会给出完全错误的答案

在下面的代码中,当x = 60且y = 2时,结果= 500.这是正确的,但是在60和119之间的任何x值给出500.此外,当x <60时,我得到除以0的错误.另外,当x> = 120时,结果= 0.我很难理解为什么会发生这种情况.我也试过使用int,float和long的各种组合,但仍然没有运气.

public class main {

    static long result;
    static int x;
    static int y;
    public static void main(String[] args) {
        x = 60;
        y = 2;
        result = 1000 * (1 / (x / 60)) / y;
        System.out.println(result);
    }

}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我在尝试为Android制作节拍器应用程序时遇到了这个问题.我将此代码脱离了上下文,以便更容易隔离问题.非常感谢任何帮助和/或建议!

java int android long-integer

3
推荐指数
1
解决办法
419
查看次数