2010-01-20 6 views
5

Tôi thích định dạng tất cả các số như trong toán học. là có một chức năng được xác định trước hoặc là chỉ có thể với chuỗi con và thay thế?cách định dạng 1700 đến 1'700 và 1000000 đến 1'000'000 trong C#?

chỉnh sửa: văn hóa của tôi là de-ch

Trân trọng

+1

ngôn ngữ/văn hóa nào? –

+0

Đối với 1000000 tại sao bạn lại có hai nhóm phân cách khác nhau? Bạn quan tâm đến quốc gia nào? Tôi chưa bao giờ thấy dấu nháy đơn (lùi hoặc tiến) được sử dụng cho các dấu phân cách nhóm - thường là dấu phẩy, dấu cách hoặc dấu chấm trong trải nghiệm của tôi. –

+0

Tôi không có hai ... đây là một sai lầm .. im sry –

Trả lời

6

Hãy thử điều này

int input = Convert.ToInt32("1700"); 
string result = String.Format("{0:##,##}", input); 

Hoặc này

Console.WriteLine(1700.ToString("##,##", new NumberFormatInfo() { NumberGroupSeparator = "'" })); 
+0

hoạt động hoàn hảo, cũng với các nền văn hóa khác nhau. cảm ơn bạn. –

0

Hãy thử điều này:

Console.WriteLine(1000000.ToString("#,##0").Replace(
    CultureInfo.CurrentCulture.NumberFormat.NumberGroupSeparator, "'")); 

Hoặc

NumberFormatInfo likeInMath = new NumberFormatInfo() 
{ 
    NumberGroupSeparator = "'" 
}; 
Console.WriteLine(1000000.ToString("#,##0", likeInMath)); 
+0

Điều đó không hoạt động trên máy của tôi. Nó in '1 000 000'. Văn hóa của tôi là nb-NO – Svish

+0

@ Tuyệt vời, chỉ cần sửa lại, hãy xem –

3
var numformat = new NumberFormatInfo { 
        NumberGroupSeparator = "'", 
        NumberGroupSizes = new int[] { 3 }, 
        NumberDecimalSeparator = "." 
       }; 
Console.WriteLine(1000000.ToString("N",numformat)); 
0

tôi luôn luôn sử dụng định dạng này

"#,##0;#,##0'-';0" 

để bạn có thể sử dụng nó trong

int input = Convert.ToInt32("100000000"); 
string result = String.Format("{#,##0;#,##0'-';0}", input);