当前位置: 首页 > 编程语言 > C#

从字符串开头提取小数分享

时间:2023-04-11 01:37:20 C#

从字符串开头提取小数我有一个5.5kg7.90gram或7.907.90gram的字符串,我想得到5.5或7.90作为十进制值。我怎样才能在C#中实现这样的结果,而且我的字符串总是以小数开头。这是我的代码,每当遇到除小数以外的任何内容时都会抛出错误。字符串权重=属性值;如果(!string.IsNullOrEmpty(weight)){product.Weight=Convert.ToDecimal(attributeValue);}else{product.Weight=0.00m;我会创建一个部分匹配前导数字模式的正则表达式。这在某种程度上取决于您是否总是有小数点,是否要允许逗号作为千位分隔符,是否总是使用.作为小数点等。它可能看起来像这样:^-?d+(?:.d+)?然后将该正则表达式与您的文本匹配,获取匹配的值(如果成功)并对该值使用decimal.Parse或double.Parse:Regexregex=newRegex(@"^-?d+(?:.d+)?");匹配match=regex.Match(text);如果(match.Success){weight=decimal.Parse(match.Value,CultureInfo.InvariantCulture);请注意,对于像质量这样的“自然”值,您最好使用双精度而不是小数。后者更适合货币等“人工”值,自然最好用十进制表示,具有精确值。这取决于你在做什么。这里有一个完全不同的方法stringoldstr="1.7meter";Char[]strarr=oldstr.ToCharArray().Where(c=>Char.IsDigit(c)||Char.IsPunctuation(c)).ToArray();十进制数=Convert.ToDecimal(newstring(strarr));对于您的输入格式,您可以通过此代码获取小数varweight=Decimal.Parse(Regex.Match(input_string,"[0-9]*\.*[0-9]*").Value);如果您的输入字符串格式不同,则必须更改正则表达式模式。以上就是C#学习教程:从字符串开头提取小数的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: