2012-01-25 44 views

Respuesta

170

# en el formato de cadena indican que el valor es opcional. Si desea obtener la salida 0.00 necesita lo siguiente:

0.ToString("0.00"); 

Ver here for the custom numeric formats que se puede pasar a este método.

+1

Una cosa todavía me confundía porque el resultado no es 0. Porque 0 no es opcional. Está vacío tiene sentido? – user960567

126

Porque en una cadena de formato, # se usa para indicar un marcador de posición de carácter opcional; solo se usa si necesita para representar el número.

Si hace esto en su lugar: 0.ToString("0.##"); que se obtiene: 0

Curiosamente, si usted hace esto: 0.ToString("#.0#"); que se obtiene: .0

Si desea que todos los tres dígitos: 0.ToString("0.00"); produce: 0.00


De los comentarios a esta respuesta, su argumento parece ser,

debería mostrar '0', porque ¿por qué alguien querría ver una cadena vacía si el valor numérico es 0?

La respuesta es sencilla: Usted tiene la opción cómo desea que se muestre. Para eso son las cadenas de formato personalizado. Simplemente ha elegido la cadena de formato incorrecta para sus necesidades.

20

De acuerdo con la documentación sobre Digit Placeholder.

Si el valor que se formatea tiene un dígito en la posición donde aparece '#' en la cadena de formato, entonces ese dígito se copia en la cadena de resultados. De lo contrario, nada es almacenado en esa posición en la cadena de resultados. Este especificador nunca muestra el carácter '0' si no es un dígito significativo, incluso si '0' es el único dígito en la cadena. Aparecerá el carácter '0' si es un dígito significativo en el número que se muestra. La cadena de formato "##" hace que el valor se redondee al dígito más cercano que preceda a el decimal, donde siempre se usa el redondeo desde cero. Por ejemplo, el formato 34.5 con "##" tendría como resultado el valor 35.

Si desea que el cero a mostrar utilizar el cero PlaceHolder

f el valor que se está formateado tiene un dígito en la posición donde el '0' aparece en la cadena de formato, entonces ese dígito se copia a la cadena de resultados. La posición del a la izquierda '0' antes del punto decimal y el extremo derecho '0' después del punto decimal determina el rango de dígitos que siempre están presentes en la cadena de resultados.
El especificador "00" hace que el valor se redondee al dígito más cercano que precede al decimal, donde siempre se utiliza el redondeo desde cero. Por ejemplo, formatear 34.5 con "00" daría como resultado el valor 35.

Cuestiones relacionadas