Pregunta

Parece como si la Cadena.Formato no se formatea una cadena como entrada.Estoy haciendo algo mal, o es sólo un nativo de comportamiento?

Entrada :0.37

Esto no funciona.

string x = String.Format("{0:P}", myString)

Salida :0.37

Esto hace.

string x = String.Format("{0:P}", Convert.ToDecimal(myString))

Salida :37.00 %

¿Fue útil?

Solución

Creo que este es el comportamiento esperado para el 'formato compuesta'.

Su primer ejemplo está tratando de aplicar reglas de formato numérico a una cadena. Su segundo ejemplo está tratando de aplicar reglas de formato numérico a un número que puede tener posiciones decimales.

este artículo en MSDN para obtener más información.

Otros consejos

La opción de formato que intenta aplicar sólo funciona para los números. No existe el concepto de cadenas inteligentes en .NET en el que el CLR inspecciona la cadena para un tipo.

Estoy haciendo algo mal, o es sólo un nativo de comportamiento?

Nativo de comportamiento.Es, básicamente, no el trabajo de Format para interpretar la cadena de entrada. Format se supone que el usuario proporciona los datos correctos – en su caso, numérico de datos.Una cadena no es numérico, incluso si representa un número (esta es la más importante distinción en el CS de entre un valor/semántica y su representación/sintaxis!).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top