2012-07-31 9 views

Respuesta

53

Hay diferentes maneras de lograr esto, pero para mí el más fácil y más rápida es utilizar the "," custom specifier

double value = 1234567890; 

    // Displays 1,234,567,890 
    Console.WriteLine(value.ToString("#,#", CultureInfo.InvariantCulture)); 

    // Displays 1,234,568K 
    Console.WriteLine(value.ToString("#,##0,K", CultureInfo.InvariantCulture)); 

    // Displays 1,235M 
    Console.WriteLine(value.ToString("#,##0,,M", CultureInfo.InvariantCulture)); 

    // Displays 1B 
    Console.WriteLine(value.ToString("#,##0,,,B", CultureInfo.InvariantCulture)); 
+1

Si lo uso como "#, ## 0 ,,,. 00B" Ha redondeo de la última cifra decimal, pero no lo quieren. – pxm

+2

value.ToString ("0 ,,,. # B", CultureInfo.InvariantCulture) => 1.2B – NIBERIUM

+0

¿Alguna forma de usar esto con la moneda? –

4

Se puede implementar un ICustomFormatter que divide el valor por mil millones o mil millones, y utilizar de esta manera:

var result = string.Format(new MyCustomFormatter(), "{0:MyFormat}", number); 
+0

La aplicación debe ser de ambas interfaces ICustomFormatter y IFormatProvider – KD2ND

4

utilizo esta mezcla de formatos en un método de extensión (sólo añadir a su proyecto y disfrutar)

public static string ToKMB(this decimal num) 
{ 
    if (num > 999999999) 
    { 
     return num.ToString("0,,,.###B", CultureInfo.InvariantCulture); 
    } 
    else 
    if (num > 999999) 
    { 
     return num.ToString("0,,.##M", CultureInfo.InvariantCulture); 
    } 
    else 
    if (num > 999) 
    { 
     return num.ToString("0,.#K", CultureInfo.InvariantCulture); 
    } 
    else 
    { 
     return num.ToString(CultureInfo.InvariantCulture); 
    } 
} 

Uso:

((decimal)235).ToKMB(); 
// 235 

((decimal)1235).ToKMB(); 
// 1.2K 

((decimal)6271235).ToKMB(); 
// 6.27M 

((decimal)93246571235).ToKMB(); 
// 93.247B 

devolverlo más detalle para los números más grandes y me gusta. También puede agregar una anulación para que sea compatible con int, long y double sin conversión.

Cuestiones relacionadas