Pregunta

Tengo un método que devuelve números como esto:

public decimal GetNumber()
{
    return 250.00m;
}

Ahora, cuando este valor se imprime a la consola por ejemplo, tiene una coma (250,00) en lugar de un punto (250,00). Siempre quiero un punto aquí, ¿qué estoy haciendo mal?

¿Fue útil?

Solución

decimal sí mismo no tiene el formato -. No tiene ni una coma ni un punto

Es cuando se convierte en una cadena que obtendrá eso. Puede asegurarse de obtener un punto especificando la referencia cultural de todos:

using System;
using System.Globalization;
using System.Threading;

class Test
{
    static void Main()
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
        decimal d = 5.50m;
        string withComma = d.ToString();
        string withDot = d.ToString(CultureInfo.InvariantCulture);
        Console.WriteLine(withComma);
        Console.WriteLine(withDot);
    }
}

Otros consejos

Como se explicó por Jon Skeet, se debe especificar el cultivo utilizado para formatear el string:

var str = GetNumber().ToString(System.Globalization.CultureInfo.InvariantCulture);

Es una buena práctica utilizar siempre la sobrecarga ToString en el que se especifica la cultura. De lo contrario, utilice el .NET Culture hilo actual, lo que escribir diferentes strings a la salida en función de la configuración regional del PC ...

configuración regional específica de formatear?

http://en.wikipedia.org/wiki/File:DecimalSeparator.svg (verde equivale a una coma, por lo que si usted está llamando ToString() en su decimal usando la información de cultura de cualquiera de estos lugares, verá una coma).

He comprobado con Visual Studio 2008 (aplicación de consola) y su no mostrar "" en lugar de "" , Por favor proporcionar más detalles. Creo que es cuestión de la cultura-información. por favor provea un poco más los detalles del código

class Program
{
    static void Main(string[] args)
    {
        Console.Write(GetNumber());
    }
    public static  decimal GetNumber()
    {
        return 250.00m;
    }

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top