-3

Acually 私はこのように Java で 2 つの float 値を追加しようとしました:

import java.text.DecimalFormat;
class ExactDecimalValue
{        
    final strictfp static public void main(String... arg)
    {    
       float f1=123.00000f;           
       float f2=124.00000f;           
       float f3=f1+f2;

       System.out.println(f1+f2);
       System.out.println("sum of two floats:"+f3);

       /*my expected output is:247.00000
         but comming output is:247.0   and 247*/   
    }     
}

247.00000 という形式で値を取得するために何ができるでしょうか。

4

4 に答える 4

2

これはうまくいきます:

float f1=123.00000f;

float f2=124.00000f;

float f3=f1+f2;

System.out.println(f1+f2);
System.out.printf("%.5f", f3);

フロートをフォーマットしたいときはいつでも、常にprintfを使用します。

于 2012-11-23T04:52:10.360 に答える
0

実際の加算が間違っているわけではありません。値を出力することは、素人の言葉で言えば、正確な値を必要としないと仮定しているだけです...浮動小数点精度の詳細については、Round-Off Errorを参照してください。

float の 10 進出力の指定に関するこの回答を参照してください: Java で小数点以下 2 桁の float データの出力を表示する方法は?

于 2012-11-23T04:49:52.537 に答える