C#string.Format 1000,00到1.000,00

asd*_*dad 2 c# string string.format

如何将Numbers更改为以下内容:

1000应该成为1.000,00,当我有700,它必须是700,00.
当我尝试string.Format("{0:0,000.00}", Number),700变成0.700,00,所以它不好.

Rob*_*ine 8

你需要

string.Format("{0:#,##0.00}", Number)
Run Code Online (Sandbox Code Playgroud)

您需要将前导占位符指定为#而不是零,这使其成为可选项.

但是,不是"蛮力"来设置数字格式,最好找出你想要的文化格式并CultureInfo为string.format 提供正确的格式.String.Format让您提供格式化文化,如下所示:

var culture = CultureInfo.GetCultureInfo("fr-FR");
var formattedNumber = string.Format(culture , "{0:n}", Number);
Run Code Online (Sandbox Code Playgroud)

(我选择纯粹使用法语作为插图,因为它似乎符合您示例中的要求).

{0:n}如果您关心具有特定格式,那么您不应该使用而不指定文化 - 因为这完全取决于用户/系统的文化设置.

  • 最常见的模式是`#,## 0.00`.将产生`0,01`和`1.000.000,00` (2认同)

Bre*_*tra 6

CultureInfostring.Format中提供正确的


Ase*_*tam 5

您希望小数分隔符和千位分隔符.

最好的方法是在应用程序级别定义它以保持一致性.

的WinForms:

在program.cs中

System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ",";
System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberGroupSeparator = ".";
Run Code Online (Sandbox Code Playgroud)

ASP.NET

定义基页,并执行:

    protected override void InitializeCulture()
    {
    base.InitializeCulture(); 

     System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberDecimalSeparator = ",";    
     System.Threading.Thread.CurrentThread.CurrentUICulture.NumberFormat.NumberGroupSeparator = ".";                    
    }
Run Code Online (Sandbox Code Playgroud)