Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想将百分比值字符串转换为双精度?_C#_Math_Format_Rounding - Fatal编程技术网

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

我在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 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;