逗号而不是点的Java float

标签 java formatting local

All I have a floating point number in Finnish local.就像下面这样:-

  String numberString = "1000,30";
  if(numberString.contains(",")){
        numberString = numberString.replaceAll(",",".").trim();    
    }

    try {
        Number number = Double.parseDouble(numberString);
        return number;
    }catch (NumberFormatException ex){
        System.out.printf(ex.getMessage());
    }
    return null;

但是这个数字的值为 1000.30。我想要的数字应该是 1000,30。我怎样才能用逗号而不是点号? 这是一个基本问题,它必须早先被问过。但我发现的只是 String 数据类型。我没有看到任何数字数据类型。

最佳答案

当看到您评论说 API 只接受 Number 并且它调用 Number#toString() 时,我只看到一种强制显示的方法.通过使用您自己的 Number 实现并覆盖 Object#toString() 的工作方式:

public class CorrectlyDisplayedDouble extends Number{
    private final Double internal;

    public CorrectlyDisplayedDouble(Double internal){
        this.internal = internal;
    }

    public int intValue(){
        return internal.intValue();
    }

    public long longValue(){
        return internal.longValue();
    }

    public float floatValue(){
        return internal.floatValue();
    }

    public double doubleValue(){
        return internal.doubleValue();
    }

    public String toString(){
        // replaces periods with commas
        return internal.toString().replace(".", ",");
    }
}

然后可以使用以下代码段轻松创建,然后也可以将其传递给您的第三方 API:

Number number = new CorrectlyDisplayedDouble(Double.parseDouble(numberString));

关于逗号而不是点的Java float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51759796/

相关文章:

c++ - Vim:让 gq 不替换注释 block 中的 `**'

ruby-on-rails - Rails local_assign 与局部变量

python - python 函数中的本地列表

debugging - 是否有在 Windows 7 x64 上启用本地内核调试的黑客/技巧

java.lang.OutOfMemory错误: Java heap space creating a long list of Myclass

java - SMPP:为submit_sm设置message_id

html - 如何使子 div 与滚动父级的高度相匹配?

c++ - 跨平台区域设置表

java - android下更改mupdf布局

java - WAR 类访问其他 WAR 中的另一个类