java - 将小数位设置为浮点值

标签 java number-formatting

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/

相关文章:

java - 在 Spring Boot Eclipse 中使用多个外部 JAR

java - 在数字和小数之间插入自定义字符串 - Java DecimalFormat

java - Android中的多线程警告

javascript - 将 javascript 函数应用于 html 元素

android - 如何在android中实现 "Rich Edittext"

java - 从几个科学计数法中获取数字

Java欧元符号转换为货币符号

java - Java文档中的volatile变量解释

java - UFT-启动Java应用程序

java - Spring MVC/JSP。如何创建带有国家/地区列表的多语言组合?