我试图摆脱我的double值的十进制分隔符之后不必要的符号。我这样做是这样的:
DecimalFormat format = new DecimalFormat("#.#####");
value = Double.valueOf(format.format(41251.50000000012343));
但是,当我运行此代码时,它会抛出:
java.lang.NumberFormatException: For input string: "41251,5"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.valueOf(Double.java:447)
at ...
如我所见,在string这样的Double.valueOf()
字符串上效果很好"11.1"
,但是在like这样的字符串上却令人窒息"11,1"
。我该如何解决?有没有比这更优雅的方式
Double.valueOf(format.format(41251.50000000012343).replaceAll(",", "."));
有没有办法覆盖类的默认十进制分隔符值DecimalFormat
?还有其他想法吗?
通过
在我的double值的十进制分隔符之后摆脱不必要的符号
您是说要舍入到小数点后5位吗?然后使用
value = Math.round(value*1e5)/1e5;
(当然,Math.floor(value*1e5)/1e5
如果您确实希望截断其他数字,也可以)
java.text.DecimalFormat类用于根据自定义格式和按区域设置格式化数字。 示例 - 格式编号 在这个例子中,我们根据给定的模式格式化数字。 IOTester.java import java.text.DecimalFormat; public class I18NTester { public static void main(String[] args) {
使用DecimalFormatSymbols类,可以更改默认分隔符号,分组分隔符号等。 以下示例说明了相同的内容。 IOTester.java import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; public class I18NTester { public static void main(Stri
默认情况下,DecimalFormat对象使用JVM的语言环境。 我们可以在使用NumberFormat类创建DecimalFormat对象时更改默认语言环境。 在下面的示例中,我们将对两个不同的区域设置使用相同的模式,您可以发现输出中的差异。 IOTester.java import java.text.DecimalFormat; import java.text.NumberFormat;
问题内容: 这是小代码来说明我所看到的 打印: 我要打印 我需要做什么? 问题答案: 在使用之前添加以下行: 查看其他舍入模式,看看哪种最适合您。 注意:此方法仅在JDK 1.6或更高版本中有效
问题内容: ,此模式的目的是什么?我相信这有两个目的 分组数字,即千位分隔符 如果缺少小数点,则在小数点后附加两个零,将23转换为23.00 但是为什么在小数点之前而不是小数点之前呢?这个零的目的是什么?谢谢您的帮助。 问题答案: 来自:http : //docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html 所以当没有数量未显
DecimalFormat类是NumberFormat的子类。DecimalFormat类属于java.text包。通过getXxxInstance方法获得的NumberFormat对象实例实际上就是DecimalFormat类的对象实例。由于DecimalFormat类不是抽象类,因此,可以直接创建DecimalFormat类的对象实例。下面的代码使用无参数的构造方法创建了DecimalForm