为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Double.parseDouble 格式化基本上由 Java 中以空格分隔的数字组成的

如何使用 Double.parseDouble 格式化基本上由 Java 中以空格分隔的数字组成的

蝴蝶不菲 2022-12-15 17:01:42
在此示例中,我正在等待 double 55000,但收到 NumberFormatException 类型错误 // After runing, this display a NumberFormatException    System.err.println(Double.valueOf("55 000"));    // After runing, this display a NumberFormatException    System.err.println(Double.parseDouble("55 000"));
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

您需要在使用之前删除空格Double.parseDouble():


String input = "55 000";

double number = Double.parseDouble(input.replace(" ", ""));

System.out.println(number);

或者使用DecimalFormat自定义分组分隔符来解析字符串:


DecimalFormat decimalFormat = new DecimalFormat();

DecimalFormatSymbols symbols = new DecimalFormatSymbols();

symbols.setGroupingSeparator(' ');

decimalFormat.setDecimalFormatSymbols(symbols);

double number = decimalFormat.parse(input).doubleValue();

System.out.println(number);


查看完整回答
反对 回复 2022-12-15
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

如果您想忽略空格,只需遍历字符串,如果字符是空格,请不要将其放入新字符串中,然后将其转换为双精度数。


String dbl = "55 000";

String newDbl = "";

for (int i = 0; i < dbl.length(); i++){

    if (dbl.charAt(i) != ' '){

        newDbl+=dbl.charAt(i)

    }

}

double dub = Double.valueOf(newDbl);

这会给55_000,这是我对你正在尝试做的事情的解释。如果你想要 55.000 并且可以保证字符串会有一个空格


String dbl = "55 000";

int index = dbl.indexOf(" ");

StringBuilder build = new StringBuilder(dbl);

build.deleteCharAt(index);

build.insert(index,".");

double dub = Double.valueOf(build.toString());

dub将会55.0


查看完整回答
反对 回复 2022-12-15
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信