簡體   English   中英

對十進制數字C#使用自定義字符串格式

[英]Using custom string format for decimal number c#

我在數據庫中得到了一個帶有4個小數位的十進制值,但是我需要顯示后面帶有千位分隔符而沒有0的格式。 我已經嘗試了G,F,N格式,但是對想要的結果一無所知。

1234.3456          // 1,234.3456
1234.0000          // 1,234.00
1234.3450          // 1,234.345
1234.345678        // 1,234,3457
1234               // 1,234.00
1234.2             // 1,234,20

這很容易找到解決該問題的示例。 如果它解決了您的問題,請不要忘記將其標記為答案:)

 double value;

  value = 123;
  Console.WriteLine(value.ToString("00000"));
  Console.WriteLine(String.Format("{0:00000}", value));
  // Displays 00123

  value = 1.2;
  Console.WriteLine(value.ToString("0.00", CultureInfo.InvariantCulture));
  Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                    "{0:0.00}", value));
  // Displays 1.20

  Console.WriteLine(value.ToString("00.00", CultureInfo.InvariantCulture));
  Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                  "{0:00.00}", value));
  // Displays 01.20

  CultureInfo daDK = CultureInfo.CreateSpecificCulture("da-DK");
  Console.WriteLine(value.ToString("00.00", daDK)); 
  Console.WriteLine(String.Format(daDK, "{0:00.00}", value));
  // Displays 01,20

  value = .56;
  Console.WriteLine(value.ToString("0.0", CultureInfo.InvariantCulture));
  Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                  "{0:0.0}", value));
  // Displays 0.6

  value = 1234567890;
  Console.WriteLine(value.ToString("0,0", CultureInfo.InvariantCulture));   
  Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                  "{0:0,0}", value));   
  // Displays 1,234,567,890      

  CultureInfo elGR = CultureInfo.CreateSpecificCulture("el-GR");
  Console.WriteLine(value.ToString("0,0", elGR));   
 Console.WriteLine(String.Format(elGR, "{0:0,0}", value));  
  // Displays 1.234.567.890

  value = 1234567890.123456;
  Console.WriteLine(value.ToString("0,0.0", CultureInfo.InvariantCulture)); 
  Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                  "{0:0,0.0}", value)); 
  // Displays 1,234,567,890.1  

  value = 1234.567890;
  Console.WriteLine(value.ToString("0,0.00", CultureInfo.InvariantCulture));    
  Console.WriteLine(String.Format(CultureInfo.InvariantCulture, 
                                  "{0:0,0.00}", value));    
  // Displays 1,234.57 

實際上, Decimal.ToString的MSDN頁面幾乎可以滿足您在上一個示例中的需要。

說明符=“#,#。00#;(#,#。00#)”

因此,只需刪除否定格式,並在末尾添加一個額外的#
specifier = "#,#.00##"

剛剛嘗試使用:

decimal[] decimals = {1234.3456M, 1234.0000M, 1234.3450M, 1234.345678M, 1234, 1234.2M};
string[] formattedDecimals = decimals.Select(d => d.ToString(specifier)).ToArray();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM