I would create a regular expression matching the leading number part. This will partly depend on whether you will always have a decimal point, whether you want to allow commas for thousands separators, whether it will always use .
as the decimal point, etc. It might look something like this though:
^-?d+(?:.d+)?
Then match that regular expression against your text, take the value of the match (if it's successful) and use decimal.Parse
or double.Parse
on that value:
Regex regex = new Regex(@"^-?d+(?:.d+)?");
Match match = regex.Match(text);
if (match.Success)
{
weight = decimal.Parse(match.Value, CultureInfo.InvariantCulture);
}
Note that for "natural" values such as mass, you may be better off with double
than decimal
. The latter is more appropriate for "artificial" values such as currency, which are naturally best expressed in decimal and have exact values. It depends on what you're doing though.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…