Java 如何将浮点值设置为小数点后两位?Ex-25.00000
小数点后大于零的浮点未显示到两个小数点 我试过用十进制转换。除了(超过零分)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
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