2010-08-24 89 views
3

我遇到了定價問題。 我需要格式化的價格輸入爲XXXX.YY型號爲 的問題是,輸入價格可以是歐洲的形狀XXX,YY或XX,XXX.YY如果談論大數字。如何按格式轉換價格

有沒有一個JS或C#的lib,幫助那裏?

感謝

回答

1

美國/英國格式:

Double.Parse("123,456.78", new CultureInfo("en-US")); 

德國格式:

Double.Parse("123.456,78", new CultureInfo("de-DE")); 

提示:如果你是存儲/從文件中讀取數據/數據庫等,一般建議儘量使用CultureInfo.InvariantCulture

+0

如果要將其存儲在數據庫中,請將該日期作爲DateTime值發送到參數中。 – 2010-08-24 10:51:12

+1

@Cylon貓:這是關於雙打,而不是日期 – yas4891 2010-08-24 10:53:07

2

的處理貨幣值時,應該使用Decimal.Parse而不是Double.Parse。 (十進制類型減少舍入誤差等)的可能性

要獲得關於不同的文化貨幣格式,從MDSN問題:

參數S在初始化的 的NumberFormatInfo使用 格式設置信息分析爲目前的系統文化提供了 。有關更多 信息,請參閱CurrentInfo。到使用一些其它區域性的格式 信息解析 一個字符串,使用 的Decimal.Parse(字符串, 的IFormatProvider)或 Decimal.Parse(字符串,的NumberStyles, 的IFormatProvider)方法。

如果您不知道,.NET框架將自動從當前操作系統的區域設置中獲取「當前系統區域」。在Windows中,這可以由計算機用戶在「區域設置」或類似內容中查看/更改。

+0

好提示。不知道 – yas4891 2010-08-24 10:52:19

+0

我的第一個評論是關於事實,即Decimal.Parse做圓而不是截斷 – yas4891 2010-08-24 11:18:58