C#decimal.Parse()奇怪的FormatException

时间:2013-09-11 13:14:39

标签: c# .net decimal cultureinfo formatexception

MyDataSet myDataSet MyTablestring MyNumber(名称已更改)。然后在表中添加一行(现有代码):

decimal d = GetSum();
myDataSet.MyTable.AddMyTableRow(d.ToString("F2"));

现在我必须得到那个十进制数。但是当我尝试

时它会抛出FormatException
decimal.Parse(myDataSet.MyTable[0].MyNumber);
// or
decimal.Parse(myDataSet.MyTable[0].MyNumber, CultureInfo.InvariantCulture);
//or
decimal.Parse(myDataSet.MyTable[0].MyNumber, CultureInfo.CurrentCulture)
//or
anything else..

3 个答案:

答案 0 :(得分:2)

几天前我遇到了类似的问题。然而,这是我在MVC项目中的ModelBinding。我不得不覆盖负责将十进制值绑定到模型变量的类。

尝试用逗号(,)替换句号(。)

答案 1 :(得分:0)

我猜想FormatException建议您不要将字符串值放入Decimal.Parse方法。

http://msdn.microsoft.com/en-us/library/cafs243z.aspx

MSDN建议:

FormatException = s的格式不正确。

从您看到的列本身而不是其中包含的数据。

答案 2 :(得分:0)

我通过为这些数字创建额外的十进制列来解决这个问题。