1

1 時間または 10 分の 1 時間で表される時間単位で計算を行う必要があり、BigDecimal が適切なデータ型であるかどうか疑問に思います。私が収集したものから、BigDecimal は通貨の計算に適しているので、1.5 + 0.6 タイプの単純な数学を処理する必要がある場合にも同じことが当てはまると思います。ここで私の考えは正しいですか?

4

2 に答える 2

1

短い答えはイエスです。10 進数の計算を実行している場合、BigDecimal は、あらゆる種類の丸め誤差を回避するために使用するのに適したクラスです。ただし、おそらく最も効率的な方法ではありません。パフォーマンスが問題にならない場合は、BigDecimal が目的を果たしていると言えます。

別の方法は、数分で計算を実行し、答えを 6 で割って結果を出すことです。その場合、整数を使用して、高価な計算を最後まで保留することができます。6 で割ると、答えを double にキャストできます。

Double answer = 154 / 6.0 //154 represents calculated minutes
于 2012-07-25T14:55:44.750 に答える
0

あなたの質問は、10 分の 1 時間だけで作業する必要があると述べているため、この最小時間単位の倍数、つまり 6 分に基づいて表現されます。

このようにして、表す最大時間に応じて、 Integer やBigIntegerなどの整数データ型で時間を表すことができます。

(Big)Integer をラップし、文字列への書式設定、他の型間の変換などのメソッドを提供するカスタム クラスを作成することもできます。

于 2012-07-21T05:11:50.513 に答える