-3

实际上,我尝试在 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。

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 回答
1

您可以使用 DecimalFormat 类来设置精度

float f1=123.00000f;
float f2=124.00000f;
float f3=f1+f2;
DecimalFormat f = new DecimalFormat("0.00000");
System.out.println(f.format(f3));

输出将是 247.00000

于 2019-06-04T19:44:12.180 回答
0

并不是说实际的加法是错误的,只是打印出来的值是假设您不需要确切的值,用外行的话来说......有关浮点精度的更多信息,请参阅:舍入误差

请参阅有关指定浮点数的十进制输出的答案:如何在 Java 中显示具有 2 个小数位的浮点数据的输出?

于 2012-11-23T04:49:52.537 回答
-1

方法一:

Float f3 = Float.sum(f1, f2);

方法二:

Float f3 = f1.floatValue()+f2.floatValue();
于 2018-08-12T13:55:49.310 回答