Actualmente estoy construyendo un módulo de ventas para el sitio web de un cliente. Hasta ahora tengo el precio de venta para calcular perfectamente, pero donde me he quedado atascado es formatear la salida a 2 decimales.
Actualmente estoy llamando a esto en una variable para poder vincular los resultados a una vista de lista.
Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
¿Alguien puede mostrarme cómo formatear la salida a 2 decimales? ¡Muchas gracias!
c#
variables
floating-point
decimal
Callum
fuente
fuente
Respuestas:
Puede pasar el formato al
ToString
método, por ejemplo:Cadenas de formato de número estándar
fuente
Lo primero que debe hacer es usar el
decimal
tipo en lugar defloat
los precios. El usofloat
es absolutamente inaceptable porque no puede representar con precisión la mayoría de las fracciones decimales.Una vez que haya hecho eso,
Decimal.Round()
puede usarse para redondear a 2 lugares.fuente
String.Format("{0:#,###.##}", value)
Un ejemplo más complejo de String Formatting en C # :
fuente
Yo creo:
Deberías hacerlo.
Ver ejemplos de formato de cadena de enlace C #
fuente
fuente
Como ya se mencionó, deberá utilizar un resultado formateado; que se hace todo a través de los
Write()
,WriteLine()
,Format()
, yToString()
métodos.Lo que no se ha mencionado es el Formato de punto fijo que permite un número específico de lugares decimales. Utiliza una 'F' y el número que sigue a la 'F' es el número de lugares decimales que se muestran, como se muestra en los ejemplos.
fuente
Esto es para los casos en que desea utilizar cadenas interpoladas . De hecho, estoy publicando esto porque estoy cansado de prueba y error y eventualmente me desplazo a través de toneladas de documentos cada vez que necesito formatear un escalar.
Advertencia de rendimiento
Las cadenas interpoladas son lentas. En mi experiencia, este es el orden (rápido a lento):
value.ToString(format)+" blah blah"
string.Format("{0:format} blah blah", value)
$"{value:format} blah blah"
fuente