格式化java中的浮点数最多为3的十进制精度

时间:2013-08-30 05:12:49

标签: java floating-point-precision

我有一个变量类型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

我做错了什么..

请帮助..

4 个答案:

答案 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位小数的浮点数