12

double を最も近い .5 に丸める必要があります。.0 で終わる数字で終わりたくありません。

私は少し調べてみましたが、誰もが最も近い半分だけではなく、最も近い.5の倍数に丸めたいようです。.5 で割って丸めて .5 を掛けてみましたが、それでも .5 の倍数に丸められます。この後に .5 を足したり引いたりしても、必ずしもその数値が四捨五入されるとは限りません (引き算すべきところに足し算をするかもしれません)。

どんな助けでも大歓迎です。

4

3 に答える 3

11

私はそれMath.round(num * 2) / 2.0fが最も近い半分の問題への丸めを解決するはずだと思います:

Math.round(3.9 * 2) / 2.0f == 8 / 2.0f = 4.0
Math.round(3.6 * 2) / 2.0f == 7 / 2.0f = 3.5
Math.round(3.1 * 2) / 2.0f == 6 / 2.0f = 3.0
于 2013-08-01T15:25:27.443 に答える
9

減算、丸め、加算...

Math.round(value - 0.5) + 0.5

問題のコメントで言及されている別の作業方法:

Math.floor(value) + 0.5
于 2013-05-29T06:38:35.737 に答える