¿Por qué 0.ToString("#.##")
devuelve una cadena vacía? ¿No debería ser 0.00
o al menos 0?¿Por qué 0.ToString ("#. ##") devuelve una cadena vacía en lugar de 0.00 o al menos 0?
Respuesta
#
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.
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.
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.
- 1. ¿Por qué {} + [] devuelve 0 en Javascript?
- 2. ¿Por qué InverseFunction [0 &] @ 0 devuelve 33/10?
- 3. ¿Puede argv [0] contener una cadena vacía?
- 4. ToString ("0") versus ToString (CultureInfo.InvariantCulture)
- 5. ¿Qué devuelve malloc (0)?
- 6. curl_errno devuelve 0 en lugar de 6
- 7. mysql cadena concatenación devuelve 0
- 8. ¿Por qué es (Infinity | 0) === 0?
- 9. ¿Por qué IJavaProject.findPackageFragmentRoots devuelve una matriz vacía?
- 10. ¿Por qué main no devuelve 0 aquí?
- 11. ¿Por qué mysqli num_rows siempre devuelve 0?
- 12. ¿Por qué Calendar.get (Calendar.MONTH) devuelve 0?
- 13. Agregue una cadena vacía vs toString - ¿por qué es malo?
- 14. ¿Por qué Cocoa devuelve una cadena vacía ocasionalmente?
- 15. Html.TextboxFor/decimales que se vacía en lugar de 0
- 16. Lua table.getn() devuelve 0?
- 17. Scala ¿Devuelve una función vacía con 0 parámetros, fea sintaxis?
- 18. ¿Por qué es "0 === -0" verdadero en JavaScript?
- 19. PHP $ cadena {0} contra $ cadena [0];
- 20. ¿Por qué "Año 2010" = ~/([0-4] *)/resultados en una cadena vacía en $ 1?
- 21. ¿Por qué 0 == "" verdadero en JavaScript
- 22. ¿Por qué SUM (...) en un conjunto de registros vacío devuelve NULL en lugar de 0?
- 23. ¿por qué `x [0]` devuelve un vector de longitud cero?
- 24. parseInt ("08") devuelve 0
- 25. Diferencia entre ToString ("N2") y ToString ("0.00")
- 26. ¿Por qué esta cadena repite 0?
- 27. ¿Por qué falla Convert.ToBoolean ("0")?
- 28. 0 + 0 + 0 ... + 0! = 0
- 29. C++ bool devuelve 0 1 en lugar de verdadero falso
- 30. ¿Por qué strcmp() devuelve 0 cuando sus entradas son iguales?
Una cosa todavía me confundía porque el resultado no es 0. Porque 0 no es opcional. Está vacío tiene sentido? – user960567