TransWikia.com

Separador de miles mvc

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?

3 Answers

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP