Pregunta

Tengo un número decimal, digamos 1234.500.

Quiero mostrarlo como 1,234.5.

Actualmente lo estoy convirtiendo en un doble para eliminar los '0.

string.Format("{0:0,0}",1234.500) Elimina el lugar decimal, y otras opciones de formato parecen usar dos decimales independientemente.

¿Alguien puede ofrecer información?

¿Fue útil?

Solución

Debe usar un formato personalizado como #,##0.00

string s = string.Format("{0:#,##0.00}", xx);

Producirá 1,234.50 Cuando xx = 1234.5m
Olvídate de convertirte en double, eso realmente no ayudará.

Otros consejos

¿Sabe que .NET tiene soporte incorporado para formatear correctamente los números de acuerdo con la configuración regional de cada usuario de su aplicación? Puede ser mejor aprovechar la configuración regional del usuario (el marco .NET ya conoce todas las configuraciones correctas).

Sin embargo, si desea corregir su aplicación para formatear números en una configuración regional particular, aún puede recoger una localidad particular de su elección y obligar a .NET a usarlo como base de todo el formato (no solo números):

using System.Globalization;
using System.Threading;
...
CultureInfo us = new CultureInfo("en-US");

y entonces

Thread.CurrentThread.CurrentUICulture = us;

o solo

Console.WriteLine(d.ToString("c", us));

Debe tener en cuenta que el uso de comas como miles de separadores es apropiado para el Reino Unido y los Estados Unidos, pero no es cómo se deben mostrar miles en otros países.

"Mil y veinticinco se muestran como 1.025 en los Estados Unidos y 1.025 en Alemania. En Suecia, el separador de miles es un espacio"

MSDN tiene una sección dedicada dedicado a este tema que llaman 'globalización' (es decir, ese es un buen término de búsqueda si es necesario buscar más detalles). Esa página describe cómo funciona el uso del letrero de libra como marcador de posición dígito para eliminar los ceros finales (como lo sugirió Henk Holterman en un comentario anterior).

Ver también Cadenas de formato numéricas personalizadas.

Otra alternativa:

decimal d = 1234.56m;
string s = d.ToString("N");    // 1,234.56

¿Has probado esto?

   String.Format("{0:0,0.00}", 1234.560);

prueba esto !

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Try
            TextBox1.Text = Format(CInt(TextBox1.Text), "#,#")
            TextBox1.SelectionStart = TextBox1.Text.Length
        Catch ex As Exception

        End Try

End Sub

Prueba esto:

string myNumber = string.Format("{0:#,0.00}", 1234.500);

(He visto esto en informes de RDLC)

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