在Java中添加两个浮点值

在Java中添加两个浮点值,java,floating-point,Java,Floating Point,实际上,我尝试在Java中添加两个浮点值,如下所示: import java.text.DecimalFormat; class ExactDecimalValue { final strictfp static public void main(String... arg) { float f1=123.00000f; float f2=124.00000f; floa

实际上,我尝试在Java中添加两个浮点值,如下所示:

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。

并不是实际的加法是错误的,只是打印出来的值是假设你不需要精确的值,用外行的话说。。。有关浮点精度的详细信息,请参阅:

请参阅有关指定浮点小数输出的回答:

这将起作用:

float f1=123.00000f;

float f2=124.00000f;

float f3=f1+f2;

System.out.println(f1+f2);
System.out.printf("%.5f", f3);
每当我想格式化浮动时,我总是使用printf。

方法1:

Float f3 = Float.sum(f1, f2);
方法2:

Float f3 = f1.floatValue()+f2.floatValue();

可以使用DecimalFormat类设置精度

float f1=123.00000f;
浮球f2=124.00000f;
浮点数f3=f1+f2;
DecimalFormat f=新的DecimalFormat(“0.00000”);
System.out.println(f.format(f3));
产量将为247.00000