我有一个变量类型float。我想将它打印到3个十进制精度,包括尾随零。
示例:
2.5>> 2.500
1.2>> 1.200
1.3782>> 1.378
2>> 2.000
我正在尝试使用
DecimalFormat _numberFormat= new DecimalFormat("#0.000");
Float.parseFloat(_numberFormat.format(2.5))
但它没有转换2.5>> 2.500
我做错了什么..
请帮助..
答案 0 :(得分:6)
这是错误Float.parseFloat
这是转换回2.5
_numberFormat.format(2.5)
的输出为2.500
但是这个Float.parseFloat
会回到2.5
因此,您的代码必须
DecimalFormat _numberFormat= new DecimalFormat("#0.000");
_numberFormat.format(2.5)
答案 1 :(得分:1)
尝试格式化如下:
DecimalFormat df = new DecimalFormat();
df.applyPattern(".000");
System.out.println(df.format(f));
答案 2 :(得分:0)
您正在为格式化字符串写入小数,然后将其解析为浮点数。
Floats不关心它们是否读取2.500或2.5,尽管前者是格式化的。
浮点数不会保留尾随零,因为IEEE754无法处理指定重要数据的数量。
答案 3 :(得分:0)
尝试
System.out.printf("%.3f", 2.5);
printf-Method允许您指定输入的格式。在这种情况下,%.3f
表示
将以下数字打印为带有3位小数的浮点数