我有一個情況,我需要找出一個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