繁体   English   中英

将字符串用'%'转换为双精度

[英]convert String to double with '%'

我有一个字符串值,例如“ 1.22%”。 我想将其转换为双精度值。 Douboe.parseDouble引发numberFormatException。

String s = "1.22%";
 double iRate;

iRate = Double.parseDouble(s);

一线使用DecimalFormat

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

您想要使用一种类似于以下方法的方法:

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

假设您使用标准格式。 你可以试试

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

更好的方法是使用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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM