将String转换为使用'%'加倍

时间:2015-10-02 15:56:16

标签: java number-formatting

我的字符串值类似于" 1.22%"。我想将其转换为double值。 Douboe.parseDouble抛出numberFormatException。

String s = "1.22%";
 double iRate;

iRate = Double.parseDouble(s);

4 个答案:

答案 0 :(得分:4)

使用DecimalFormat的单线:

double d = new DecimalFormat("0.0#%").parse("1.22%").doubleValue(); 
// d = 0.0122

答案 1 :(得分:2)

您想使用类似下面的方法:

public static double ConvertPercentageStringToDouble(this string value)
{
   return double.Parse(value.Replace("%","")) / 100;
}

答案 2 :(得分:0)

假设您有标准格式。你可以尝试

String s = "1.22%";
s = s.replaceAll("%","");
double iRate= Double.parseDouble(s);

答案 3 :(得分:0)

更好的方法是使用 DecimalFormatSymbols ,这可以帮助您定义什么是simbols以及什么是真正的数字转换为Double。

请参阅以下示例:

    String s = "1.22%";

    DecimalFormat df = new DecimalFormat();
    DecimalFormatSymbols symbols = new DecimalFormatSymbols();
    symbols.setDecimalSeparator('.');
    symbols.setGroupingSeparator(' ');
    symbols.setPercent('%');
    df.setDecimalFormatSymbols(symbols);
    Number parse = df.parse(s);

    Double myDouble = parse.doubleValue();

    System.out.println(myDouble);