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());
}
}
}