Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将浮点值设置为小数点后两位?Ex-25.00000_Java - Fatal编程技术网

Java 如何将浮点值设置为小数点后两位?Ex-25.00000

Java 如何将浮点值设置为小数点后两位?Ex-25.00000,java,Java,小数点后大于零的浮点未显示到两个小数点 我试过用十进制转换。除了(超过零分)ex-25.00000外,它适用于汇总 DecimalFormat df = new DecimalFormat("0.00"); df.setMinimumFractionDigits(2); Double.parseDouble(df.format(frog_per)); 我预计25.00000的输出是25.00,但实际输出是25.0。这就是你如何舍入2位小数的方法 DecimalForma

小数点后大于零的浮点未显示到两个小数点

我试过用十进制转换。除了(超过零分)ex-25.00000外,它适用于汇总

    DecimalFormat df = new DecimalFormat("0.00");
    df.setMinimumFractionDigits(2);
    Double.parseDouble(df.format(frog_per));

我预计25.00000的输出是25.00,但实际输出是25.0。

这就是你如何舍入2位小数的方法

DecimalFormat df2 = new DecimalFormat(".##");
df2.format(variable)

您可以使用
String.format(字符串格式、对象…参数)

输出:

25.00


请更改DecimalFormat df=新的DecimalFormat(“0.00”);to DecimalFormat df=新的DecimalFormat(“#,#,#,#,#0.00”)

您的格式模式
0.00
很好。
只是不要为了将其显示为格式化输出而从格式化字符串中构造double

Double
从输入创建的对象
25.00
25.00000
25
的值为25。它存储值,从不存储格式

如果要使用此对象生成
25.00
输出,必须使用其他答案中使用的任一方法重新格式化:

Double d = 25.00000d;
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(d));
System.out.printf("%.2f", d);
产生预期产出:

25.00
25.00

您在哪里输出任何内容?你在结果上使用
Double.parseDouble
,这将它再次变成
Double
,就像@f1sh说的,你应该直接打印:
df.format(frog_per)
@MushifAliNawaz yapp,,明白了。Double和float没有任何固有的精度(因此是浮点)。BigDecimal是一个固定点类
new BigDecimal(“0.00”)
将给出一个带两个小数的零。可能重复@sohanbappy-只要您不了解结果,请不要这样做。我不建议使用
String.format
格式化要显示的信息。原因是
DecimalFormat
和其他格式化类可以处理String.format无法处理的许多本地化方面。因此,String.format的用法仅适用于除英语以外永远不会以其他语言显示的信息。但这不是您的答案所包含的内容。重点是,我认为最好是让OP正确回答他的问题-如何正确使用DecimalFormat-然后提供-我很抱歉这样的解释-误导性的回答,如“使用
String.format(String格式,Object…args)”
用于显示。还有一种
printf
方法,可以同时进行格式化和打印。
表示可选的十进制数字,因此
25.00000
使用
格式化。
格式将显示
25
-请测试
25.00
25.00