Formato doble en C #

Tengo un doble valor. Quiero formatear este valor en el formato de x.yz. ¿Cómo hago esto? Me siguen truncando los dígitos. ¿Puede alguien decirme cómo hacer esto en C #?

¡Gracias!

El uso de cadenas de formato se explica en:

  • Cadenas de formato numérico estándar
  • Cadenas de formato numérico personalizado

Por ejemplo, intente:

  • (0.56789).ToString("F2")
  • (0.56789).ToString("0.00") .

Tenga en cuenta que el valor resultante NO se trunca, pero se redondea en ambos casos, lo que da como resultado "0.57" .

Dígitos después del punto decimal

Este ejemplo formatea el doble a la cadena con un número fijo de lugares decimales. Para dos decimales use el patrón “0.00”. Si un número flotante tiene menos lugares decimales, los dígitos restantes de la derecha serán ceros. Si tiene más decimales, el número se redondeará.

 // just two decimal places String.Format("{0:0.00}", 123.4567); // "123.46" String.Format("{0:0.00}", 123.4); // "123.40" String.Format("{0:0.00}", 123.0); // "123.00" 

El siguiente ejemplo da formato a la cadena con un número flotante de lugares decimales. Por ejemplo, para un máximo de dos decimales use el patrón „0. ##“.

 // max. two decimal places String.Format("{0:0.##}", 123.4567); // "123.46" String.Format("{0:0.##}", 123.4); // "123.4" String.Format("{0:0.##}", 123.0); // "123" 

Dígitos antes del punto decimal

Si desea que un número flotante tenga un número mínimo de dígitos antes del punto decimal, use N-veces cero antes del punto decimal. Por ejemplo, el patrón “00.0” formatea un número flotante a cadena con al menos dos dígitos antes del punto decimal y un dígito después de eso.

 // at least two digits before decimal point String.Format("{0:00.0}", 123.4567); // "123.5" String.Format("{0:00.0}", 23.4567); // "23.5" String.Format("{0:00.0}", 3.4567); // "03.5" String.Format("{0:00.0}", -3.4567); // "-03.5" 

Separador de miles

Para dar formato al doble de la cadena con el uso del separador de miles, use el separador de coma cero y comas antes de un patrón de formato flotante habitual, por ejemplo, el patrón „0,0.0“ formatea el número para usar separadores de miles y tener un lugar decimal.

 String.Format("{0:0,0.0}", 12345.67); // "12,345.7" String.Format("{0:0,0}", 12345.67); // "12,346" 

Cero

Los números flotantes entre cero y uno se pueden formatear de dos maneras, con o sin cero antes del punto decimal. Para formatear el número sin un cero inicial, use # antes del punto. Por ejemplo, “# .0” formatea el número para tener un lugar decimal y de cero a N dígitos antes del punto decimal (por ejemplo, “.5” o “123.5”).

El siguiente código muestra cómo se puede formatear un cero (de tipo doble).

 String.Format("{0:0.0}", 0.0); // "0.0" String.Format("{0:0.#}", 0.0); // "0" String.Format("{0:#.0}", 0.0); // ".0" String.Format("{0:#.#}", 0.0); // "" 

Alinear números con espacios

Para alinear el número flotante a la derecha, use la coma “,” opción antes de los dos puntos. Escriba una coma seguida de una serie de espacios, por ejemplo, “0,10: 0.0” (esto solo se puede usar en el método String.Format, no en el método double.ToString). Para alinear números a la izquierda usa un número negativo de espacios.

 String.Format("{0,10:0.0}", 123.4567); // " 123.5" String.Format("{0,-10:0.0}", 123.4567); // "123.5 " String.Format("{0,10:0.0}", -123.4567); // " -123.5" String.Format("{0,-10:0.0}", -123.4567); // "-123.5 " 

Formato personalizado para números negativos y cero.

Si necesita usar un formato personalizado para números flotantes negativos o cero, use el separador de punto y coma „;“ para dividir el patrón en tres secciones. La primera sección da formato a los números positivos, la segunda sección da formato a los números negativos y la tercera sección da formato a cero. Si omite la última sección, se formateará a cero usando la primera sección.

 String.Format("{0:0.00;minus 0.00;zero}", 123.4567); // "123.46" String.Format("{0:0.00;minus 0.00;zero}", -123.4567); // "minus 123.46" String.Format("{0:0.00;minus 0.00;zero}", 0.0); // "zero" 

http://www.csharp-examples.net/string-format-double/

 string.Format("{0:0.00}",yourdouble); 

Y quizás encuentre útil pegar un papel con este http://john-sheehan.com/blog/wp-content/uploads/msnet-formatting-strings.pdf en algún lugar de su oficina

¿Intentaste algo como esto, usando ToString?

 doubleNumber = -1898300.1937; Console.WriteLine(doubleNumber.ToString("F2", CultureInfo.InvariantCulture)); // Displays -1898300.19 

Prueba esto:

 number.ToString("0.00"); 

También eche un vistazo a las cadenas de formato numérico personalizado

Estoy usando el método Math.Round

 Math.Round(yourdouble, 2) 

También puede especificar la regla de redondeo.