2011-12-01 83 views
19

我已經在互聯網上看到過使用帶括號的括號來格式化一個負雙值。貨幣類型。

我要尋找一個.NET格式字符串,格式化

12345.67 = 12,345.67 

-12345.67 = (12,345.67) 
+2

VB.NET或C#?標題和標籤不同意。 – Oded

回答

3

可以使用FormatNumber函數:

FormatNumber(-100, UseParensForNegativeNumbers:=TriState.True)

將返回 「(100)」

有更多關於MSDN

+0

這是在Microsoft.VisualBasic命名空間中,因此要在C#中使用它,您需要首先添加對Microsoft.VisualBasic的引用。 –

+0

謝謝Jon!感謝您的快速回答! – user715993

+0

另一個原因(如果我需要更多)爲什麼VB規則:-)管理添加一行代碼和一個複選框,現在運行帶有減號或括號的報告 – gchq

46

MSDN上conditional formatting來救援!

您可以一次指定最多三個格式字符串的不同部分,用分號分隔它們。如果指定兩個格式字符串節,則第一個用於正值和零值,而第二個用於負值;如果使用三個部分,第一個用於正值,第二個用於負值,第三個用於零值。

從該C#代碼的輸出:

 string fmt1 = "#,##0.00"; 
     string fmt2 = "#,##0.00;(#,##0.00)"; 
     double posAmount = 12345.67; 
     double negAmount = -12345.67; 
     Console.WriteLine("posAmount.ToString(fmt1) returns " + posAmount.ToString(fmt1)); 
     Console.WriteLine("negAmount.ToString(fmt1) returns " + negAmount.ToString(fmt1)); 
     Console.WriteLine("posAmount.ToString(fmt2) returns " + posAmount.ToString(fmt2)); 
     Console.WriteLine("negAmount.ToString(fmt2) returns " + negAmount.ToString(fmt2)); 

是:

posAmount.ToString(fmt1) returns 12,345.67 
negAmount.ToString(fmt1) returns -12,345.67 
posAmount.ToString(fmt2) returns 12,345.67 
negAmount.ToString(fmt2) returns (12,345.67) 
相關問題