5

我有一个变量类型浮点数。我想将它打印到 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

4 回答 4

7

Float.parseFloat这是转换回 2.5的错误

的输出 _numberFormat.format(2.5)2.500

但这Float.parseFloat使它回到2.5

所以你的代码必须是

DecimalFormat _numberFormat= new DecimalFormat("#0.000");
_numberFormat.format(2.5)
于 2013-08-30T05:17:01.280 回答
3

尝试格式化如下:

DecimalFormat df = new DecimalFormat();
df.applyPattern(".000");
System.out.println(df.format(f));
于 2013-08-30T05:20:15.853 回答
2

尝试

System.out.printf("%.3f", 2.5);

printf 方法允许您为输入指定格式。在这种情况下%.3f意味着

将以下数字打印为具有 3 位小数的浮点数

于 2013-08-30T05:16:15.227 回答
1

您正在将小数写入格式化字符串,然后将其解析为浮点数。

浮点数不在乎它们读取的是 2.500 还是 2.5,尽管前者已格式化。

浮点数不会保留尾随零,因为 IEEE754 无法处理指定有效数字的数量。

于 2013-08-30T05:15:38.563 回答