DecimalFormat df2 = new DecimalFormat("#.##");
double zipf = 0.23951367781155017;
String zipt = df2.format(zipf);
System.out.println(zipt);我得到了"0,24“
这方面的问题是,我想把它作为双倍使用。但是Double.valueOf();方法由于字符串输出中存在逗号而失败。有办法解决这个问题吗?
发布于 2014-02-24 18:30:47
对于小数点,您应该创建一个英文区域设置的实例,如下所示:
NumberFormat nf = NumberFormat.getNumberInstance(Locale.ENGLISH);
nf.setMinimumFractionDigits(2);
nf.setMaximumFractionDigits(2);
String zipt = nf.format(zipf);
System.out.println(zipt);我还建议将舍入设置为HALF_UP,因为默认舍入不是我们大多数人所期望的:EVEN。
nf.setRoundingMode(RoundingMode.HALF_UP);发布于 2014-02-24 18:29:05
使用不同的locale.German有点
NumberFormat nf = NumberFormat.getNumberInstance(Locale.GERMAN);
DecimalFormat df = (DecimalFormat)nf;另一种方法是使用字符串,然后将字符串修改为您的needs.After,该字符串解析为double.All done :)
发布于 2014-02-24 18:32:22
您的问题是JVM正在使用的本地,请尝试在当前本地进行更改。
https://stackoverflow.com/questions/21995817
复制相似问题