我有一个变量类型浮点数。我想将它打印到 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。
难道我做错了什么..
请帮忙..
我有一个变量类型浮点数。我想将它打印到 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。
难道我做错了什么..
请帮忙..
Float.parseFloat这是转换回 2.5的错误
的输出 _numberFormat.format(2.5)是2.500
但这Float.parseFloat使它回到2.5
所以你的代码必须是
DecimalFormat _numberFormat= new DecimalFormat("#0.000");
_numberFormat.format(2.5)
尝试格式化如下:
DecimalFormat df = new DecimalFormat();
df.applyPattern(".000");
System.out.println(df.format(f));
尝试
System.out.printf("%.3f", 2.5);
printf 方法允许您为输入指定格式。在这种情况下%.3f意味着
将以下数字打印为具有 3 位小数的浮点数
您正在将小数写入格式化字符串,然后将其解析为浮点数。
浮点数不在乎它们读取的是 2.500 还是 2.5,尽管前者已格式化。
浮点数不会保留尾随零,因为 IEEE754 无法处理指定有效数字的数量。