2011-10-11 26 views
1

我試圖打印decimal數據類型的物理量,最多6個小數位。我想要顯示千位分隔符,但僅適用於> = 10,000(或< = -10,000)的數字。如何在C#中指定可選的千位分隔符?

例如:

  • 100 - > 100
  • 1000 - > 1000
  • 9999 - > 9999
  • 10000 - > 10,000

我一直在使用這種格式,但它不太正確:

myNumber.ToString("#,##0.######"); 

格式字符串是否有一個技巧讓千位分隔符只在小數點左邊有5位或更多位數時才顯示?

+0

如果使用if? – Dani

回答

4

我不認爲有什麼特殊的技巧,你就必須做

var result = myNumber >= 10000.0m || myNumber <= -10000.0m ? 
       myNumber.ToString("#,##0.######") : 
       myNumber.ToString("###0.######"); 
+0

謝謝。我認爲你的'''應該是'米'的。 –

+0

@ScottWhitlock你是對的。出於某種原因,我認爲你「myNumber」是雙倍的。 –

1

你可以使用myNumber.ToString(「N」),應使用當前區域性和格式正確

+0

對不起,我只注意到你只希望它申請的數字超過10,000。這背後的原因是什麼?只是好奇 –

+0

我不知道它來自哪裏,可能是味道,但結果的要求是:1000或10,000。他們不想看到1,000。 –

+0

有意思。 爲了便於創建一個使用Bala R邏輯的擴展,然後 –

1

我不相信有任何「內置」,但這是ICustomFormatter專爲Iformatprovider提供的一種情況。請參閱iformatprovider