Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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#_Webforms - Fatal编程技术网

C# 解析为双精度并忽略字母和空格

C# 解析为双精度并忽略字母和空格,c#,webforms,C#,Webforms,我在这里定义价格: lblPrisGrill.Text = "20,00 ,-"; // Grill lblPrisWiener.Text = "25,00 ,-"; // Wiener lblPrisBacon.Text = "35,00 ,-"; // Bacon lblPrisOst.Text = "30,00 ,-"; // Oste 我将价格从字符串解析为双精度(数字): 我想知道我怎么能只得到数字“#####”而忽略”、-“ 我知道有一些资源可以解释这一点,但我想知道如果我有多个任

我在这里定义价格:

lblPrisGrill.Text = "20,00 ,-"; // Grill
lblPrisWiener.Text = "25,00 ,-"; // Wiener
lblPrisBacon.Text = "35,00 ,-"; // Bacon
lblPrisOst.Text = "30,00 ,-"; // Oste
我将价格从字符串解析为双精度(数字):

我想知道我怎么能只得到数字
“#####”
而忽略
”、-“


我知道有一些资源可以解释这一点,但我想知道如果我有多个任务,这会是什么情况,并看看如何完成。

您只需使用
字符串。替换
即可删除该部分:

string s = "20,00 ,-";

double d = double.Parse(s.Replace(",-", ""));
Console.WriteLine(d); // 20.0

可以使用正则表达式查找匹配的表达式。我创建了dotnetfiddle来演示您的场景。你可以用小提琴检查输出。附上代码以供参考

using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        var text = "200,001 ,-"; 

        var regex = new Regex(@"\d\d*,\d\d*");
        foreach(var match in regex.Matches(text))
        {
            Console.WriteLine(match.ToString());
        }

    }
}

为什么不包括你不需要呼叫的空间trim@Sorceri我想去掉任何空格,因为这似乎是用户输入,但事实证明,
double.Parse
可以很好地处理数字周围的空格。(也不包括此处的空间,以确保在以后某个时候忘记该空间时,替换不会失败)
using System;
using System.Text.RegularExpressions;

public class Program
{
    public static void Main()
    {
        var text = "200,001 ,-"; 

        var regex = new Regex(@"\d\d*,\d\d*");
        foreach(var match in regex.Matches(text))
        {
            Console.WriteLine(match.ToString());
        }

    }
}