0

次の要件を持つプログラムを作成する必要があります。

  1. float a = 3333.333f; など、float 型の変数があります。

  2. int 型の変数があります。たとえば、int b = 9999; とします。

電卓で a*b を実行すると、結果は 33329996.667 になります。

小数点以下を 2 桁に切り上げた後、Java で値を 33329996.67 として出力したいと思います。long、double、float、big decimal で試しましたが、成功しませんでした。

誰でもこれを解決するのを手伝ってもらえますか?

4

2 に答える 2

2

floatの精度は 7 桁しかないため、7 桁を超える結果には適していません。double最大 16 桁の精度があり、より適切な選択です。

double a = 3333.333;
int b = 9999;
System.out.printf("%.2f", a * b);

版画

33329996.67
于 2012-06-30T13:26:01.700 に答える
0

コンマの後の桁数を決定するには、ちょっとしたトリックを適用する必要があります。

最初にコンマを必要な桁数だけ右にシフトし、次に Math.ceil(float f) などで数値全体を切り取り、コンマを左にシフトします。

それはそれを説明します:

float f = 33329996.667;

float f2 = Math.ceil((f * 100)) / 100;

f2 の値は 33329996.67 になりました。

お役に立てれば。

編集:フォーマットについては、こちらをご覧ください

于 2012-06-30T13:07:30.893 に答える