2011-10-11 23 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