Dot-Net
Int.ToString(‘C’) 刪除負號
根據http://msdn.microsoft.com/en-us/library/6t7dwaa5.aspx,如果我想將數字顯示為貨幣,我可以呼叫 .ToString() 並傳遞一個參數,在本例中為“C "
但是,根據下面來自 MSDN 站點的詳細資訊,它會自動刪除減號 (-) 字元,這意味著我的值現在是正數。
int value = -16325; // Display value using default ToString method. Console.WriteLine(value.ToString()); // Displays -16325 // Display value using some standard format specifiers. Console.WriteLine(value.ToString("G")); // Displays -16325 Console.WriteLine(value.ToString("C")); // Displays ($16,325.00) Console.WriteLine(value.ToString("D")); // Displays -16325 Console.WriteLine(value.ToString("F")); // Displays -16325.00 Console.WriteLine(value.ToString("N")); // Displays -16,325.00 Console.WriteLine(value.ToString("X")); // Displays FFFFC03B那麼,如何使用減號保留它,我是否必須使用 Contains("-") 方法,如果它是真的添加 - 回來。
類似這段程式碼的東西(如果編碼不正確,請道歉,但你明白了)。
string x = (value.ToString().Contains("-") : "-" + value.ToString("C") ? + value.ToString("C"));
這取決於您的
CurrentCulture.NumberFormat.CurrencyNegativePattern. 可能的值是 0 - 15:0 : ($12,345.00) 1 : -$12,345.00 2 : $-12,345.00 3 : $12,345.00- 4 : (12,345.00$) 5 : -12,345.00$ 6 : 12,345.00-$ 7 : 12,345.00$- 8 : -12,345.00 $ 9 : -$ 12,345.00 10 : 12,345.00 $- 11 : $ 12,345.00- 12 : $ -12,345.00 13 : 12,345.00- $ 14 : ($ 12,345.00) 15 : (12,345.00 $)所以看起來你想設置它來
1獲得你想要的輸出,比如:int value = -12345; var numberFormat = (NumberFormatInfo)CultureInfo.CurrentCulture.NumberFormat.Clone(); numberFormat.CurrencyNegativePattern = 1; string numberAsCurrency = value.ToString("C", numberFormat)但是,根據您關於它是遠端伺服器的評論並且您總是希望以特定方式進行格式化,最好將整個執行緒的文化設置為受控值,這將影響
ToString()該執行緒上的所有後續呼叫:int value = -12345; Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); Thread.CurrentThread.CurrentCulture.NumberFormat.CurrencyNegativePattern = 1; string numberAsCurrency = value.ToString("C");