在C#中,我試圖根據計算機上的設置格式化一個金額。根據C#中計算機設置的格式編號(金額)
因此,例如,如果en-US上的設置是xxxx.xx(用點分隔)並且在nb-NO中它是xxxx.xx(用逗號分隔),我想自動檢測並格式化數額相應。
感謝您的幫助提前。
在C#中,我試圖根據計算機上的設置格式化一個金額。根據C#中計算機設置的格式編號(金額)
因此,例如,如果en-US上的設置是xxxx.xx(用點分隔)並且在nb-NO中它是xxxx.xx(用逗號分隔),我想自動檢測並格式化數額相應。
感謝您的幫助提前。
試試這個
double amount = xxxx.xx;
string formattedCurrency=amount.ToString("C", CultureInfo.CurrentCulture);
嗨。 我得到此錯誤: Document.LoadScript :: c:\ Documents and Settings \ Administrator \ Local Settings \ Temp \ CSSCRIPT \ tmp56.tmp(17,20):錯誤CS0029:無法隱式地將類型'字符串'轉換爲'雙' c:\ Documents and Settings \ Administrator \ Local Settings \ Temp \ CSSCRIPT \ tmp56.tmp(24,20):錯誤CS0029:無法將類型'字符串'隱式轉換爲'雙' c:\ Documents and設置\管理員\本地設置\溫度\ CSSCRIPT \ tmp56.tmp(30,20):錯誤CS0029:不能隱式轉換類型'字符串'爲'雙' –
我猜你正在使用這樣的事情double amount =「1234.56」,在這種情況下不要使用雙數據類型,請使用字符串 – Cris
如果你只是希望得到格式化爲貨幣值(字符串),你可以這樣做:
MyDecimal.ToString("c");
如果你正在尋找對於某些屬性,您可以查看特定文化的NumberFormat
property,其類型爲NumberFormatInfo
。
這個類所包含的屬性,告訴你文化的千位分隔符,小數分隔符,貨幣符號,如何處理負數等
的貨幣有用的屬性:
您可以使用兩個接口的IFormatProvider,ICustomFormatter,以創建格式: 公共類TestConvertor:的IFormatProvider,ICustomFormatter { 公共對象的getFormat(類型formatType) { 如果(formatType == typeof運算(ICustomFormatter)) 返回此; 返回null; }
public string Format(string format, object arg, IFormatProvider formatProvider)
{
decimal amount = arg is decimal ? (decimal) arg : 0;
return amount.ToString("C", CultureInfo.CurrentCulture);
}
}
class Program
{
static void Main(string[] args)
{
double amount = 2541.25;
var f = string.Format(new TestConvertor(), "{0:Currency}", 2545);
Console.WriteLine(f);
Console.ReadKey();
}
}
您的意思是貨幣? – Cris
是的,這是正確的:-) –
可能重複的[double.TryParse在荷蘭](http://stackoverflow.com/questions/905754/double-tryparse-in-dutch) –