Foros del Web » Programando para Internet » ASP Clásico »

Increible

Estas en el tema de Increible en el foro de ASP Clásico en Foros del Web. Wenas: ¿Como es posible que Código: v="20e41" Response.Write isnumeric(v) de como resultado True?. Investigando, con "20e41" tb pasa, pero con ninguna letra +. Tb he ...
  #1 (permalink)  
Antiguo 20/04/2004, 10:32
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 22 años, 5 meses
Puntos: 1
Pregunta Increible

Wenas:

¿Como es posible que
Código:
v="20e41"
Response.Write isnumeric(v)
de como resultado True?.

Investigando, con "20e41" tb pasa, pero con ninguna letra +.

Tb he observado que "1d1" tb.

¿Es posible que sea el asunto de los numeros exponenciales?.

Si es así, ¿como controlo que el valor de la var, q en mi aplicación viene en Request.QueryString, sea un numero, si el usr puede haber introducido numeroDnumero, o numerodnumero, o numeroEnumero, o numeroenumero?.

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender

Última edición por fjmasero; 20/04/2004 a las 10:39
  #2 (permalink)  
Antiguo 20/04/2004, 11:28
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Pos si está raro, lo que se me ocurre es que te hagas tu propia función IsNumeric2 je je je que corte cada uno de los elementos y utilizas la funcion IsNumeric, pero para cada caractér...funcionará?

Function IsNumeric2(item)
esnumerico = true
itera = len(IsNumeric)

For i = 1 to itera
mi_item = mid(item, i, 1)
If NOT IsNumeric(mi_item) Then
esnumerico = false
Exit For
End If
Next

IsNumeric2 = esnumerico
End Function


SiEsNumerico = IsNumeric2(Request.QueryString("valor"))

If SiEsNumerico Then
'Es numérico
Else
'no lo es
End If


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 21/04/2004, 01:10
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 22 años, 5 meses
Puntos: 1
Hola u_goldman:

Gracias por contestar.

Ya había pensado algo similar, pero me parece un exceso.

Además, el post lo he puesto por la curiosidad que me ha provocado, y si es posible, confirmar mis sospechas.

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #4 (permalink)  
Antiguo 21/04/2004, 02:44
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 21 años, 3 meses
Puntos: 0
Es posible que este interpretando el valor en otra base distinta a la decimal????
  #5 (permalink)  
Antiguo 21/04/2004, 07:42
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98


Pues pudiera ser que estuviera utilizando otra base distinta a la decimal, esto ya lo había visto alguna vez con javascript, cuando validaba que fuera numérico, entonces al envíar una e entre los números, se comportaba de la misma manera, nunca supe por qué, lo curioso del asunto es que de un momento a otro funcionó bien...pero bueno, quizás en javascript por correr en el cliente ocasionó extraños, pero esto la verdad que nunca lo había visto.

fjmasero, ai' nos cuentas la solución.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 21/04/2004, 07:48
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 22 años, 5 meses
Puntos: 1
Hmmmmmm

Pues ahora mismo, lo unico q se me ocurre es validar si entre el valor hay una d o una e, en cuyo caso hay que considerar que es un string.

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
  #7 (permalink)  
Antiguo 21/04/2004, 09:07
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Pues si, estuve investigando un poco y resulta que la función IsNumeric te devolverá un true en caso de que se trate de cualquier expresión numérica, siendo e la base de los logaritmos naturales, en la mayoría de los casos, cuando x tiende al infinito. No recuerdo bien mi educación media superior, por lo cual no puedo abundar mucho en el tema, pero entonces no es tan increible, si es una expresión numérica, creo que como dijiste, lo mas recomendable entonces es antes de utilizar IsNumeric, validar que no contenga e.



Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #8 (permalink)  
Antiguo 21/04/2004, 09:09
 
Fecha de Ingreso: enero-2004
Mensajes: 396
Antigüedad: 21 años, 3 meses
Puntos: 0
Claro, entonces, como yo habia comentado antes, esta interpretando una expresion en base hexadecimal, que efectivamente es un numero.

Algo asi debia de ser, porque si no,......
  #9 (permalink)  
Antiguo 22/04/2004, 01:05
Avatar de fjmasero  
Fecha de Ingreso: diciembre-2002
Mensajes: 488
Antigüedad: 22 años, 5 meses
Puntos: 1
Pues nada.

A convertir mi valor a string y validar si tiene alguna letra.

Salu2
__________________
No es sabio el que sabe sino el que no sabe y quiere aprender
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 08:10.