Foros del Web » Programación para mayores de 30 ;) » Programación General »

Pasar de text a number para if

Estas en el tema de Pasar de text a number para if en el foro de Programación General en Foros del Web. Quiero poner una condición con <xsl:if pero el valor que me llega es texto, al intentar convertirlo a number no me funciona con lo que ...
  #1 (permalink)  
Antiguo 10/11/2010, 01:31
Avatar de subsoho  
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Pasar de text a number para if

Quiero poner una condición con <xsl:if pero el valor que me llega es texto, al intentar convertirlo a number no me funciona con lo que la condición no se cumple.

El tema es que el valor del atributo que quiero poner en el if es un texto y no tengo manera de pasarlo a number para el if.


Aquí el código xsl:

<xsl:decimal-format name="euro"decimal-separator="," grouping-separator="."/>


<xsl:variable name="variacion" select="substring-before(html:td[2], '%')" />
<xsl:variable name="var_num" select="format-number($variacion, '##0.00', 'euro')" />
<xsl:if test="$var_num &gt; 1">
.....

html:td[2] tiene valores como "-0,09%", "-1,77%", etc.. El programa primero elimina el porcentaje con substring-before y luego intenta convertir a number.

var_num simpre es NAN porque no puede hacer la conversión de texto a numero, y en consecuencia, la condición de que sea mayor que 1 nunca se cumple.

Ayuda necesito, gracias.
  #2 (permalink)  
Antiguo 10/11/2010, 03:34
Avatar de subsoho  
Fecha de Ingreso: octubre-2009
Mensajes: 34
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Pasar de text a number para if

Cita:
Iniciado por subsoho Ver Mensaje
Quiero poner una condición con <xsl:if pero el valor que me llega es texto, al intentar convertirlo a number no me funciona con lo que la condición no se cumple.

El tema es que el valor del atributo que quiero poner en el if es un texto y no tengo manera de pasarlo a number para el if.


Aquí el código xsl:

<xsl:decimal-format name="euro"decimal-separator="," grouping-separator="."/>


<xsl:variable name="variacion" select="substring-before(html:td[2], '%')" />
<xsl:variable name="var_num" select="format-number($variacion, '##0.00', 'euro')" />
<xsl:if test="$var_num &gt; 1">
.....

html:td[2] tiene valores como "-0,09%", "-1,77%", etc.. El programa primero elimina el porcentaje con substring-before y luego intenta convertir a number.

var_num simpre es NAN porque no puede hacer la conversión de texto a numero, y en consecuencia, la condición de que sea mayor que 1 nunca se cumple.

Ayuda necesito, gracias.
Era por la ',' que separa la parte entera de la decimal, lo he sustituido por un punto de la siguiente manera :

<xsl:variable name="variacion1" select="substring-before(html:td[2],',')" />
<xsl:variable name="variacion2" select="substring-after(substring-before(html:td[2], '%'),',')" />
<xsl:variable name="variacion" select="concat($variacion1,'.',$variacion2)" />

Etiquetas: number, pasar, xml, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:45.