separador punto places decimales cambiar c# format double

punto - format decimal c#



Formatear un doble a dos decimales (5)

Bueno, dependiendo de sus necesidades, puede elegir cualquiera de los siguientes. Out put está escrito contra cada método

Puedes elegir el que necesitas

Esto será redondo

decimal d = 2.5789m; Console.WriteLine(d.ToString("#.##")); // 2.58

Esto asegurará que se escriban 2 decimales.

d = 2.5m; Console.WriteLine(d.ToString("F")); //2.50

si quieres escribir comas puedes usar esto

d=23545789.5432m; Console.WriteLine(d.ToString("n2")); //23,545,789.54

si desea devolver el valor decimal redondeado, puede hacer esto

d = 2.578m; d = decimal.Round(d, 2, MidpointRounding.AwayFromZero); //2.58

He intentado hacer que la respuesta que imprime sea dos decimales. Todas las matemáticas involucradas deben mantenerse en ese formato de dos decimales. He intentado algunas cosas y no estoy seguro de qué cambiar para que esto funcione.

double pdt1 = 239.99; double pdt1Total; double pdt2 = 129.75; double pdt2Total; double pdt3 = 99.95; double pdt3Total; double pdt4 = 350.89; double pdt4Total; double wage = 200; double percentage = 9; double total; double answer; double i = 100; double a; double b; double c; double d; Console.Write("Enter number sold of product #1: "); a = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter number sold of product #2: "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter number sold of product #3: "); c = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter number sold of product #4: "); d = Convert.ToInt32(Console.ReadLine()); pdt1Total = a * pdt1; pdt2Total = b * pdt2; pdt3Total = c * pdt3; pdt4Total = d * pdt4; total = (pdt1Total + pdt2Total + pdt3Total + pdt4Total); string.Format("{0:0.00}", total); string.Format("{0:0.00}", answer = (total * percentage / i) + wage); Console.WriteLine("Earnings this week: "+answer+"");


Como trabaja en divisas, ¿por qué no hacer esto simplemente?

Console.Writeline("Earnings this week: {0:c}", answer);

Esto formateará la respuesta como moneda, por lo que en mi máquina (Reino Unido) saldrá como sigue:

Ganancias esta semana: £ 209.00


Puede redondear un double a dos lugares decimales como este:

double c; c = Math.Round(c, 2);

Pero ten cuidado, el redondeo finalmente te morderá, así que úsalo con precaución.

En su lugar, use el tipo de datos decimal .


Recomendaría el especificador de formato de punto fijo ("F") (como lo menciona Ehsan). Vea las Cadenas de Formato Numérico Estándar .

Con esta opción, incluso puede tener un número configurable de decimales:

public string ValueAsString(double value, int decimalPlaces) { return value.ToString($"F{decimalPlaces}"); }


string.Format no cambiará el valor original, pero devolverá una cadena formateada. Por ejemplo:

Console.WriteLine("Earnings this week: {0:0.00}", answer);

Nota: Console.WriteLine permite el formato de cadenas en línea. Lo anterior es equivalente a:

Console.WriteLine("Earnings this week: " + string.Format("{0:0.00}", answer));