【发布时间】:2024-01-10 04:33:01
【问题描述】:
我有一种情况,我需要找出一个 int 进入小数的次数,但在某些情况下,我会失去精度。方法如下:
public int test(double decimalAmount, int divisor) {
return (int) (decimalAmount/ (1d / divisor));
}
问题在于,如果我将 1.2 作为小数并传入 5 作为除数,我得到的是 5 而不是 6。我怎样才能重新信任它,以便我知道 5 作为 int 有多少次进入小数?
【问题讨论】:
-
我认为您需要给出一个更通用的问题版本-您使用的术语仅对整数有意义,即 5 除以 1.2 = 0/如果您确实改进了定义,我怀疑您会得到答案,因为我怀疑问题是由于四舍五入
-
这与舍入无关,与公式有关。小数除以 int 很简单 (int)(decimalAmount/divisor)。我认为这就是大卫正在寻找的。就目前而言,代码实际上是在做小数和除数的乘法。
标签: java casting int precision