09 abril 2012

C#: Función que acorta una cifra decimal para sólo mostrar dos números

Hola. He creado esta función (cuyo nombre es pelín desastroso, y de hecho solicito que me sugerais ideas), porque me pidieron que debia acortar el precio mostrado en el report factura para sólo imprimir dos decimales.
Habra otros modos de hacerlo, pero a mi este me resulta muy útil.


private string AcortarCifra(decimal cifra)

{


string strCifra = Convert.ToString(cifra);

int dondeestalacoma = strCifra.IndexOf(',');
string partedecimal;
string parteentera;
if (dondeestalacoma != -1)
{
if (strCifra.Length > (dondeestalacoma + 2))
{
partedecimal = strCifra.Substring(dondeestalacoma + 1, 2);
parteentera = strCifra.Substring(0, dondeestalacoma);
strCifra = parteentera + "," + partedecimal;
}

}
else
strCifra = strCifra + ",00";
return strCifra;

}

1 comentario:

  1. Tengo dos sugerencias para tu función:

    private string AcortarCifra(decimal cifra)
    {//Éste es útil, el único inconveniente creo que sería que redondea a dos dígitos.
    return string.Format("0:0,00",cifra)
    }

    Otro es éste:
    private string AcortarCifra(decimal cifra)
    {
    string strDecimal = cifra.ToString();
    string[] strCifra = strDecimal.Split(',');
    if (strCifra.Length > 1)
    {
    strCifra[1] = strCifra[1].PadRight(2, '0').Substring(0, 2);
    return string.Format("{0}.{1}", strCifra);
    }
    else
    return string.Format("{0}.00", strCifra);
    }

    Espero que te sirvan, saludos!!!

    ResponderEliminar