如何在c#中指定可选的千位分隔符

本文关键字:分隔符 千位 | 更新日期: 2023-09-27 18:11:02

我试图从decimal数据类型打印物理量,最多6位小数。我希望显示千位分隔符,但仅针对>= 10,000(或<= -10,000)的数字。

例如:

  • 100 -> 100
  • 1000 -> 1000
  • 9999 -> 9999
  • 10000 - 10000

我一直在使用这种格式,但它不太正确:

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

是否有一个技巧的格式字符串,以获得千位分隔符只显示,如果有5个或更多的数字到小数点的左边?

如何在c#中指定可选的千位分隔符

我不认为有什么特别的技巧,你必须做

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

您可以使用myNumber.ToString("n"),它应该使用当前区域性和适当的格式

我不相信有什么"内置",但这是一种情况下,Iformatprovider &ICustomFormatter的设计目的。看到iformatprovider。