2014-06-24 51 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);