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));