我有一个情况,我需要找出一个int进入小数多少次,但在某些情况下,我失去了精度。下面是方法:Java - 如何避免在拆分和转换为int时精度的损失?
public int test(double decimalAmount, int divisor) {
return (int) (decimalAmount/ (1d/divisor));
}
这样做的问题是,如果我传递1.2作为小数量和5作为除数,我得到的5而不是6.如何restrusture这让我知道有多少次5进入十进制数作为int?
我认为你需要给这个问题一个更广义的版本 - 如果你这样做提高了定义只使用有意义的整数,即5组分为1.2 = 0 /条款我怀疑你会得到答案,因为我怀疑这个问题是由于四舍五入的结果 – Mark 2010-04-16 18:26:29
这与舍入和一切与公式无关。小数除以int是简单的(int)(decimalAmount/divisor)。我想这就是大卫正在寻找的东西。正如它代表的那样,代码实际上是在执行decimalAmount和divisor的乘法运算。 – 2010-04-16 18:32:55