Java 将 String 转换为 double 的问题
Java issue converting String to double
我正在尝试将 String 转换为 double。
源字符串的格式为“88.6”,我期望的双精度应为“88.60”。
我尝试使用 Double.parseDouble、双构造函数、Double.valueOf、DecimalFormat 和 NumberFormat 硬编码 Locale.US 或 Locale.ENGLISH 进行转换,但我仍然得到“88,600000”。
如何转换?
谢谢
DecimalFormat df = new DecimalFormat("#.##", new DecimalFormatSymbols(Locale.US));
try {
dValue = df.parse(szValue).doubleValue();
} catch(ParseException e) {
e.printStackTrace();
}
虽然我认为没有必要保留尾随零,但我认为这就是您所要求的:
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
java.text.DecimalFormat df = new java.text.DecimalFormat();
df.setDecimalFormatSymbols(dfs);
df.applyPattern( "###0.00" );
String s = "9.90" ;
System.out.println("non formated d=" + Double.valueOf(s) + " formated d=" +df.format(Double.valueOf(s)));
尾随零仅在打印时可见,因此您只需格式化数字
我正在尝试将 String 转换为 double。
源字符串的格式为“88.6”,我期望的双精度应为“88.60”。
我尝试使用 Double.parseDouble、双构造函数、Double.valueOf、DecimalFormat 和 NumberFormat 硬编码 Locale.US 或 Locale.ENGLISH 进行转换,但我仍然得到“88,600000”。
如何转换?
谢谢
DecimalFormat df = new DecimalFormat("#.##", new DecimalFormatSymbols(Locale.US));
try {
dValue = df.parse(szValue).doubleValue();
} catch(ParseException e) {
e.printStackTrace();
}
虽然我认为没有必要保留尾随零,但我认为这就是您所要求的:
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
java.text.DecimalFormat df = new java.text.DecimalFormat();
df.setDecimalFormatSymbols(dfs);
df.applyPattern( "###0.00" );
String s = "9.90" ;
System.out.println("non formated d=" + Double.valueOf(s) + " formated d=" +df.format(Double.valueOf(s)));
尾随零仅在打印时可见,因此您只需格式化数字