1. ホーム
  2. java

[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?

2022-02-25 07:20:36

質問

基本的に、生成された数値が2.3であれば、0.5を引くと1.8になりますが、丸め機能により2になってしまうので、それが望ましいのです。また、答えが2.99999で0.5を引くと、答えは2.49999となり、四捨五入して2が求まるはずです。私の質問は、答えが2であっても、私が.5を引いた場合、答えは現在1.5であり、それはまだ2に切り上げられますか?

temp1_1= Math.round(temp2_2/(360/temp_value)-.5);

というのが私のコードの一行です。

どのように解決するのですか?

もっとシンプルに、もっと速く

double d = 2.99999999;
long l = (long) d; // truncate to a whole number.

Math.floor()は負の無限大に丸められます。Math.round(x - 0.5) も負の無限大に丸められます。