有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何将Java中的“1234.56”解析为Double?

我在Java中解析“1234.56”时遇到问题,Java建议在数字格式中使用法语区域设置,但解析结果不正确。以下是我所拥有的:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234.56");
System.out.println(number.doubleValue()); // Should get 1234.56, got 1.234 instead
Number number = format.parse("1,234,567.89");
System.out.println(number.doubleValue());  // Should get 1234567.89

共 (3) 个答案

  1. # 1 楼答案

    1,234.56而不是法语符号。(类似于1.234,56is)

    将您的区域设置更改为Locale.ENGLISHLocale.US或类似的设置

  2. # 2 楼答案

    法语地区的小数点用逗号表示。您需要使用美国地区:

    NumberFormat format = NumberFormat.getInstance(Locale.US);
    

    Locale.ENGLISH基于语言:

    NumberFormat format = NumberFormat.getInstance(Locale.ENGLISH);
    
  3. # 3 楼答案

    可以使用字符串替换和替换","来替换""

    format.parse(("1,234.56").replace(",", ""));
    

    这很混乱,但你不需要解决语言环境问题