Best way to parseDouble with comma as decimal separator?

前端 未结 10 754
暗喜
暗喜 2020-11-22 06:14

Following is resulting in an Exception:

String p=\"1,234\";
Double d=Double.valueOf(p); 
System.out.println(d);

Is there a bet

10条回答
  •  深忆病人
    2020-11-22 06:58

    In Kotlin you can use extensions as below:

    fun String.toDoubleEx() : Double {
       val decimalSymbol = DecimalFormatSymbols.getInstance().decimalSeparator
      return if (decimalSymbol == ',') {
          this.replace(decimalSymbol, '.').toDouble()
      } else {
          this.toDouble()
      }
    }
    

    and you can use it everywhere in your code like this:

    val myNumber1 = "5,2"
    val myNumber2 = "6.7"
    
    val myNum1 = myNumber1.toDoubleEx()
    val myNum2 = myNumber2.toDoubleEx()
    

    It is easy and universal!

提交回复
热议问题