2014-06-24 50 views
0

我遇到了一个非常简单的问题。基本上我采取了一个字符串,如“$ 30.00”,并删除'$',然后尝试将其转换为小数。虽然我不断收到错误,指出字符串格式不正确。不知道该怎么在这里做...C#字符串到十进制错误

string freightstart = PostFregihtAmount.ToString(); 

freightstart = freightstart.TrimStart('$'); 

decimal freight = Decimal.Parse(freightstart); 

我尝试以下,每亚历克斯斯基巴的建议的意见:

Decimal.Parse(freightstart, System.Globalization.CultureInfo.InvariantCulture); 

这是我收到在调试错误:

enter image description here

这是我们现场CRM 2011系统的一个插件,我必须在报价单上引用一些字段是货币字段。当我查询数据时,它们以字符串格式返回,因此示例“$ 30.00”。长话短说我需要将其转换为十进制,以便我可以执行我的税务解决方案。

+1

什么是你输入的例子吗? –

+0

'freightstart'的价值是什么? – gunr2171

+0

您的代码适用于''$ 30.00''作为输入... –

回答

1

尝试明确允许小数点当您解析字符串,以及货币符号(那么你不必修剪$前解析):

var freight = Decimal.Parse("$30.00", 
       NumberStyles.AllowCurrencySymbol | NumberStyles.AllowDecimalPoint);