我從csv文件獲取數據並將其解析到我的應用程序。在我的csv文件中,我有一列price
,其價值當然是我項目中某個項目的價格。將十進制值格式化爲小數點後兩位的貨幣
然而,在CSV文件中的價格不包含結尾0, 例如,如果價格和產品$5.00
,CSV文件有它$5
,如果價格$9.60
下,CSV有它作爲$9.6
。其他價格,如$9.56
罰款雖然。
這是我如何檢索csv文件售價:
Price = string.IsNullOrEmpty(columns[3].Trim()) ?
null : (decimal?)decimal.Parse(columns[3]),
在我Price
類設置爲public decimal? Price { get; set; }
。
如何格式化返回的內容以解決此問題?
Price = String.Format("Price: {0:C}",
string.IsNullOrEmpty(columns[3].Trim()) ?
null : (decimal?)decimal.Parse(columns[3]));
我試過以上,但沒有奏效。
如何解決這個問題,以便將csv中的值設置爲$5.9
的格式爲$5.90
。
編輯:
嘗試:
Price=decimal.Round(string.IsNullOrEmpty(columns[3].Trim()) ?
null :
(decimal?)decimal.Parse(columns[3]), 2, MidpointRounding.AwayFromZero);
不知道如果我這樣做對嗎?
而且,我不能肯定我怎麼能在我的代碼使用以下選項:
decimalVar.ToString ("#.##");
也試過:
Price = string.IsNullOrEmpty(columns[3].Trim()) ?
null : (decimal?)decimal.Parse(columns[3], NumberStyles.Currency)
但仍然無法正常工作。
請使用'decimal'貨幣不'double'。請參閱[在c#中用於金錢的最佳數據類型是什麼?](http://stackoverflow.com/q/693372/580951) – Romoku
@Romoku更改爲十進制類型,但沒有更改,仍然存在問題 – user3237078
@AlexeiLevenkov請參閱上面的修改,試過但沒有工作 – user3237078