2011-06-15 22 views
155

Actualmente estoy creando un módulo de ventas para un sitio web de clientes. Hasta ahora tengo el precio de venta para calcular perfectamente, pero donde me he atascado es formatear la salida a 2 decimales.Formateo de un flotante con dos decimales

Actualmente llamo a esto una variable para que pueda vincular los resultados a una vista de lista.

Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price/100))).ToString())), 

¿Alguien me puede mostrar cómo formatear la salida a 2 decimales? ¡Muchas gracias!

+0

Compruebe esto no estoy seguro, pero podría ser que funcionará ToString ("#. ##"); – Syeda

Respuesta

340

Puede pasar el formato en el que el método ToString, por ejemplo:

myFloatVariable.ToString("0.00"); //2dp Number 

myFloatVariable.ToString("n2"); // 2dp Number 

myFloatVariable.ToString("c2"); // 2dp currency 

Standard Number Format Strings

+8

Debería poder +2 a esta publicación para la pista de moneda. – Luc

+25

"N2" y "C2" agregarán miles de separadores, mientras que "0.00" no lo hará. –

+0

¡Gran respuesta! :) – Del

2
string outString= number.ToString("####0.00"); 
38

La primera cosa que hay que hacer es usar el tipo de lugar de floatdecimal para los precios . Usar float es absolutamente inaceptable para eso porque no puede representar con precisión la mayoría de las fracciones decimales.

Una vez que haya hecho eso, Decimal.Round() se puede utilizar para redondear a 2 lugares.

+0

increíble, amigo! – Spandan

31

String.Format("{0:#,###.##}", value)

Un ejemplo más complejo de String Formatting in C#:

salida

String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);

Esta voluntad “$ 1,240.00" si se aprueba 1.243,50. Saldrá con el mismo formato pero entre paréntesis si el número es negativo, y dará salida a la cadena "Cero" si el número es cero.

Cuestiones relacionadas