2011-08-04 73 views
1

我想解析或转换为C#中的十进制字符串。字符串到十进制解析C#

我需要能够解析字符串一样,

$ 123,345,676.8999为它的等效123345676.90。

我需要在小数点后只有2个地方,并需要适当的四舍五入。

你们可以请建议一种方法来做到上述?基本上,货币形式的任何字符串(带有$,磅符号等)。我应该能够解析它并将其转换为十进制。

+1

http://stackoverflow.com/questions/2753701/convert-any-currency-string-to-double –

+0

的可能重复使用正则表达式。 –

+0

使用_any_货币,您需要小心四舍五入。有些货币'x.8999'根本不会被舍入。 –

回答

12

试试这个:

var val = double.Parse("$123,345,676.8999", NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint | NumberStyles.AllowCurrencySymbol); 
val = Math.Round(val, 2); 
+0

谢谢你的工作。 – Tendulkar

2

您可以使用decimal.TryParse进行解析 - 链接对如何解析的作品一些样品。