Stack Overflow en español Asked on December 18, 2021
Quiero usar el separador de miles, el inconveniente es que el valor sale así:
17,000
Y yo quiero que se vea así:
17.000
Es decir, lo que quiero es que en vez de la coma (,) se vea el punto (.)
Estoy usando esto en la clase:
[DisplayFormat(DataFormatString = "{0:N2}")]
public Nullable<double> valorUno { get; set; }
¿Cómo lo puedo hacer?
Mi recomendación sería utilizar otra propiedad y le das el formato que necesitas.
Utilizando el método de String.Format
Especificamos que utilice la interfaz de IFormatProvider
Y para tu caso en especial usamos el formato es-ES
(Español(España)) debido a que ellos separan los decimales por , y los miles por .
Lista con todos los formatos CultureInfo
public string valorUno_miles => string.Format(System.Globalization.CultureInfo.GetCultureInfo("es-ES"), "{0:N2}", valorUno);
Answered by Ivan-San on December 18, 2021
Usualmente los lenguajes de programación utilizan las características de idioma y regionales del PC donde se ejecutan. De modo que imprimir un valor en un PC con configuración de España produciría probablemente algo como:
100,00 €
Pero si el mismo valor se intentara imprimir en un PC con configuración de EEUU probablemente ser obtendría lo siguiente:
$100.00
No es un tema de como utilizar la mascara de formato de valores, la cual independiente de la región o configuración siempre se debe utilizar de la misma forma, no es válido pasar de {0:#,##0.00} a {0:#.##0,00} esto no tiene ningún efecto sobre como se imprima el valor, lo único que hace es causar problemas.
En C# al igual que otros lenguajes es posible personalizar la configuración regional de modo que se ignore la del PC y siempre los valores numéricos manejen el mismo formato al momento de ser impresos. Acá te dejo un ejemplo:
using System;
using System.Globalization;
namespace sharpPower
{
class Program
{
static void Main(string[] args)
{
int i = 100;
CultureInfo us = new CultureInfo("en-US");
Console.WriteLine(i.ToString("c", us));
CultureInfo es = new CultureInfo("es-ES");
Console.WriteLine(i.ToString("c", es));
}
}
}
Te recomiendo leer un poco más en la página de Microsoft
Answered by Jonnathan Q on December 18, 2021
A parte de lo que dijo Ivan-San, en la documentacion sobre formatear los numer puedes configurar tu propia regla. Por ejemplo:
{0:#.##}
Aguí te dejo un enlace a la documentación donde se explica como se haría.
Answered by Tomasz Vizaint on December 18, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP