我在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中进行这种划分而没有精度错误?
任何帮助将不胜感激.
在下面的代码中,当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制作节拍器应用程序时遇到了这个问题.我将此代码脱离了上下文,以便更容易隔离问题.非常感谢任何帮助和/或建议!