float a= (float) 1846.4;
NumberFormat df = DecimalFormat.getInstance();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(2);
float b = Float.parseFloat( df.format(a));
设置浮点小数位的最佳方法是什么(我只想设置浮点值的 2 位小数,可以是 2013.43452 或 2392.2)?现在我在线程“main”java.lang.NumberFormatException中遇到类似Exception的异常:对于输入字符串:“1,846.40”
。
最佳答案
我认为导致NFE的直接问题是字符串中的千位分隔符,而不是小数位数。字符串中同时包含 ','
和 '.'
,而 parseFloat
不喜欢这样。
但请注意,您无法修复 float
值中的小数位数 - 这完全是格式问题。具体来说,尾随 0
在浮点值中没有意义,因此默认情况下不会显示。您需要在输出时根据您的意愿格式化该值(将其转换为可显示的String
时,例如通过使用DecimalFormat
,如上面所做的那样)。
关于java - 将小数位设置为浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10137406/