separador numeros numero moneda miles mascara formato formatear decimales c# decimal currency

numeros - separador de miles en textbox c#



¿Cómo puedo formatear la propiedad decimal en la moneda? (8)

Quiero formatear el valor en el getter y devolver un valor de moneda formateado.

¿Es esto posible o debo declarar la propiedad como una cadena y luego usar string.format?


A continuación también funcionaría, pero no puede poner en captación de una propiedad decimal. El captador de una propiedad decimal solo puede devolver un decimal, para lo cual el formato no se aplica.

decimal moneyvalue = 1921.39m; string currencyValue = moneyvalue.ToString("C");


Ahora puede usar la interpolación de cadenas y las propiedades del cuerpo de expresión en C # 6.

private decimal _amount; public string FormattedAmount => $"{_amount:C}";


Las propiedades pueden devolver lo que quieran, pero será necesario devolver el tipo correcto.

private decimal _amount; public string FormattedAmount { get { return string.Format("{0:C}", _amount); } }

Se hizo una pregunta ... ¿y si fuera un decimal con nulos?

private decimal? _amount; public string FormattedAmount { get { return _amount == null ? "null" : string.Format("{0:C}", _amount.Value); } }


Prueba esto;

string.Format(new CultureInfo("en-SG", false), "{0:c0}", 123423.083234);

Convertirá el formato 123423.083234 a $ 1,23,423.



Puedes crear un método de extensión. Considero que es una buena práctica, ya que es posible que deba bloquear una pantalla de moneda, independientemente de la configuración del navegador. Por ejemplo, es posible que desee mostrar $ 5,000.00 siempre en lugar de 5 000,00 $ (#CanadaProblems)

public static class DecimalExtensions { public static string ToCurrency(this decimal decimalValue) { return $"{decimalValue:C}"; } }


Su formato devuelto estará limitado por el tipo de devolución que declare. Entonces, sí, puede declarar la propiedad como una cadena y devolver el valor formateado de algo. En el "obtener" puede poner cualquier código de recuperación de datos que necesite. Entonces, si necesita acceder a algún valor numérico, simplemente coloque su declaración de devolución como:

private decimal _myDecimalValue = 15.78m; public string MyFormattedValue { get { return _myDecimalValue.ToString("c"); } private set; //makes this a ''read only'' property. }


Un tipo decimal no puede contener información de formato. Puede crear otra propiedad, digamos FormattedProperty de un tipo de cadena que haga lo que desee.