C# 我想将百分比值字符串转换为双精度?
我在c#中有一个百分比字符串,并希望将其返回为双精度值 例如C# 我想将百分比值字符串转换为双精度?,c#,math,format,rounding,C#,Math,Format,Rounding,我在c#中有一个百分比字符串,并希望将其返回为双精度值 例如 string p = "6%"; 现在我想把这个字符串变成 double value = 0.06; 我怎么能这样呢?我尝试使用Math.Round()并在要舍入的数字中输入-2,但它只允许数字0-15 我很高兴您能提供任何帮助。您可以使用split并将其转换为double double value = double.Parse(p.Split(new char[]{'%'})[0]) / 100; 可能是这样的: double
string p = "6%";
现在我想把这个字符串变成
double value = 0.06;
我怎么能这样呢?我尝试使用Math.Round()并在要舍入的数字中输入-2,但它只允许数字0-15
我很高兴您能提供任何帮助。您可以使用split并将其转换为double
double value = double.Parse(p.Split(new char[]{'%'})[0]) / 100;
可能是这样的:
double value = double.Parse(p.TrimEnd(new[] {'%'}))/100;
您不能将字符串强制转换为double。但显然,您可以通过说您可以将字符串强制转换为double.double value=double.Parse(p.Split('%')[0])/100;小心,这将导致整数除法。您的部门将产生
0
6/100==0
,6/100.0==0.06
我认为将p2转换成一个双精度将对此进行排序?是的,但在第1版中它是ToInt32的。+1好吧,我会使用double.Parse(p.TrimRight(“,%”)来执行更多的错误检查(或者“6%abc”可能被认为是有效的),但它确实有效!可能重复的
string p = "6%";
string p2 = p.Remove(p.Length - 1);
double value = Convert.ToDouble(p2) / 100;
double value = double.Parse(p.TrimEnd(new[] {'%'}))/100;