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;
}
Tengo dos sugerencias para tu función:
ResponderEliminarprivate 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!!!