controlar datos enteros...

28/09/2004 - 02:31 por NickName | Informe spam
estuve molestando en redondear un número... pero no siempre daba un mismo
resultado, pensé que era por aplicaciones, pero es dentro de una misma
página.
es que no entrega los mismo valores dos sentencias, es como si a veces el
número 2 para ASP es 1.999999
entonces es diferente en el 'for' (también en 'while') como en sentencia
separada

alguna idea.

muchas gracias.

_____________________________________________________________________
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>round</title>
</head>

<body>

<table>
<%
for k = -3 to 3 step 0.1
response.write "<tr>"
response.write "<td nowrap><b>[" & k & "]</b></td>"
response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
response.write "<td nowrap>Redondeado(" & FIX(k + 0.5 * Sgn(k)) & ")</td>"
response.write "<td height></td>"
response.write "</tr>"
next
%>
</table>
<br>
<br>
<br>
<%
k = -2.5
response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
%>

</body>
</html>

Preguntas similare

Leer las respuestas

#6 NickName
28/09/2004 - 21:18 | Informe spam
fíjate en estas dos filas:
[-1,1] suma(-1,6) Redondeado(-1,6)
[-0,999999999999998] suma(-1,5) Redondeado(-1,5)

por qué no sale el valor -1 ¿?
cómo no es -1 (pasa con otros valores también) cuando quiero redondear o
trabajar con enteros y no entrega el valor adecuado:

x = -1
Fix(x) = 1
pero como entrega un valor -0.9peridico
x = -0.999999_
Fix(x) = 0

¿?

"DiGiTaL" escribió en el mensaje
news:
Mira a ver si asi te sirve...

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html >
<head > <title>round</title > </head > <body >
<table > <%
for k = -3 to 3 step 0.1
response.write "<tr>"
response.write "<td nowrap><b>[" & k & "]</b></td>"
response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
response.write "<td nowrap>Redondeado(" & round((k + 0.5 * Sgn(k)),2) &
")></td>"
response.write "<td height></td>"
response.write "</tr>"
next
%> </table > <br > <br > <br >
<%
k = -2.5
response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
%> </body > </html>

use la funcion round, aproximando a dos decimales...

"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
mensaje news:
> me quedo la crema (se pego el servidor) al redefinir el valor que viene
del
> 'for' (k)
> ¿?
>
> "DiGiTaL" escribió en el mensaje
> news:%
> > Pues yo te sugiero que le des el formato al numero antes de
usarlo...algo
> > asi...
> >
> > CDbl(-3) o CInt(-3) segun lo necesietes...
> >
> > DiGiTaL...
> >
> > "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en


el
> > mensaje news:
> > > estuve molestando en redondear un número... pero no siempre daba un
> mismo
> > > resultado, pensé que era por aplicaciones, pero es dentro de una


misma
> > > página.
> > > es que no entrega los mismo valores dos sentencias, es como si a


veces
> el
> > > número 2 para ASP es 1.999999
> > > entonces es diferente en el 'for' (también en 'while') como en
sentencia
> > > separada
> > >
> > > alguna idea.
> > >
> > > muchas gracias.
> > >
> > >


_____________________________________________________________________
> > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> > >
> > > <html>
> > > <head>
> > > <title>round</title>
> > > </head>
> > >
> > > <body>
> > >
> > > <table>
> > > <%
> > > for k = -3 to 3 step 0.1
> > > response.write "<tr>"
> > > response.write "<td nowrap><b>[" & k & "]</b></td>"
> > > response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
> > > response.write "<td nowrap>Redondeado(" & FIX(k + 0.5 * Sgn(k)) &
> > ")</td>"
> > > response.write "<td height></td>"
> > > response.write "</tr>"
> > > next
> > > %>
> > > </table>
> > > <br>
> > > <br>
> > > <br>
> > > <%
> > > k = -2.5
> > > response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > > response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > > response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
> > > %>
> > >
> > > </body>
> > > </html>
> > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#7 DiGiTaL
28/09/2004 - 21:39 | Informe spam
Bueno... que pasa si corres esto asi...

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html >
<head > <title>round</title > </head > <body >
<table > <%
dim k
for k = -3 to 3 step 0.1
response.write "<tr>"
response.write "<td nowrap><b>[" & k & "]</b></td>"
response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
response.write "<td nowrap>Redondeado(" & round((k),1) & ")></td>"
response.write "<td height></td>"
response.write "</tr>"
next
%> </table > <br > <br > <br >
<%
k = -2.5
response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
%> </body > </html>


la columna de suma no se ni para que la necesitas.. pero igual no la mires
en este ejemplo... use la funcion round (numero, 1) lo cual me va
decrementando 0.1 desde -3 a 3 saliendo -3, -2.9, ...0, 0.1, ..., 3
y asi no sale ningun numero periodico ni nada por el estilo...

espero que esto sea lo que necesitas...

DiGiTaL

"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
mensaje news:ePe5$%
fíjate en estas dos filas:
[-1,1] suma(-1,6) Redondeado(-1,6)
[-0,999999999999998] suma(-1,5) Redondeado(-1,5)

por qué no sale el valor -1 ¿?
cómo no es -1 (pasa con otros valores también) cuando quiero redondear o
trabajar con enteros y no entrega el valor adecuado:

x = -1
Fix(x) = 1
pero como entrega un valor -0.9peridico
x = -0.999999_
Fix(x) = 0

¿?

"DiGiTaL" escribió en el mensaje
news:
> Mira a ver si asi te sirve...
>
> <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html >
> <head > <title>round</title > </head > <body >
> <table > <%
> for k = -3 to 3 step 0.1
> response.write "<tr>"
> response.write "<td nowrap><b>[" & k & "]</b></td>"
> response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
> response.write "<td nowrap>Redondeado(" & round((k + 0.5 * Sgn(k)),2)


&
> ")></td>"
> response.write "<td height></td>"
> response.write "</tr>"
> next
> %> </table > <br > <br > <br >
> <%
> k = -2.5
> response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
> %> </body > </html>
>
> use la funcion round, aproximando a dos decimales...
>
> "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
> mensaje news:
> > me quedo la crema (se pego el servidor) al redefinir el valor que


viene
> del
> > 'for' (k)
> > ¿?
> >
> > "DiGiTaL" escribió en el mensaje
> > news:%
> > > Pues yo te sugiero que le des el formato al numero antes de
> usarlo...algo
> > > asi...
> > >
> > > CDbl(-3) o CInt(-3) segun lo necesietes...
> > >
> > > DiGiTaL...
> > >
> > > "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió


en
el
> > > mensaje news:
> > > > estuve molestando en redondear un número... pero no siempre daba


un
> > mismo
> > > > resultado, pensé que era por aplicaciones, pero es dentro de una
misma
> > > > página.
> > > > es que no entrega los mismo valores dos sentencias, es como si a
veces
> > el
> > > > número 2 para ASP es 1.999999
> > > > entonces es diferente en el 'for' (también en 'while') como en
> sentencia
> > > > separada
> > > >
> > > > alguna idea.
> > > >
> > > > muchas gracias.
> > > >
> > > >
_____________________________________________________________________
> > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> > > >
> > > > <html>
> > > > <head>
> > > > <title>round</title>
> > > > </head>
> > > >
> > > > <body>
> > > >
> > > > <table>
> > > > <%
> > > > for k = -3 to 3 step 0.1
> > > > response.write "<tr>"
> > > > response.write "<td nowrap><b>[" & k & "]</b></td>"
> > > > response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
> > > > response.write "<td nowrap>Redondeado(" & FIX(k + 0.5 * Sgn(k)) &
> > > ")</td>"
> > > > response.write "<td height></td>"
> > > > response.write "</tr>"
> > > > next
> > > > %>
> > > > </table>
> > > > <br>
> > > > <br>
> > > > <br>
> > > > <%
> > > > k = -2.5
> > > > response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > > > response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > > > response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
> > > > %>
> > > >
> > > > </body>
> > > > </html>
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#8 NickName
28/09/2004 - 23:32 | Informe spam
gracias pero esto sólo acorta el valor, a veces errado... no soluciona el
problema que el asp me hace con los enteros.
esto se deberá al cambio de variant a int¿?
bueno, te agradezco la ayuda y al resto tb.


"DiGiTaL" escribió en el mensaje
news:
Bueno... que pasa si corres esto asi...

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html >
<head > <title>round</title > </head > <body >
<table > <%
dim k
for k = -3 to 3 step 0.1
response.write "<tr>"
response.write "<td nowrap><b>[" & k & "]</b></td>"
response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
response.write "<td nowrap>Redondeado(" & round((k),1) & ")></td>"
response.write "<td height></td>"
response.write "</tr>"
next
%> </table > <br > <br > <br >
<%
k = -2.5
response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
%> </body > </html>


la columna de suma no se ni para que la necesitas.. pero igual no la mires
en este ejemplo... use la funcion round (numero, 1) lo cual me va
decrementando 0.1 desde -3 a 3 saliendo -3, -2.9, ...0, 0.1, ..., 3
y asi no sale ningun numero periodico ni nada por el estilo...

espero que esto sea lo que necesitas...

DiGiTaL

"NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en el
mensaje news:ePe5$%
> fíjate en estas dos filas:
> [-1,1] suma(-1,6) Redondeado(-1,6)
> [-0,999999999999998] suma(-1,5) Redondeado(-1,5)
>
> por qué no sale el valor -1 ¿?
> cómo no es -1 (pasa con otros valores también) cuando quiero redondear o
> trabajar con enteros y no entrega el valor adecuado:
>
> x = -1
> Fix(x) = 1
> pero como entrega un valor -0.9peridico
> x = -0.999999_
> Fix(x) = 0
>
> ¿?
>
> "DiGiTaL" escribió en el mensaje
> news:
> > Mira a ver si asi te sirve...
> >
> > <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
> > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <html

> > <head > <title>round</title > </head > <body >
> > <table > <%
> > for k = -3 to 3 step 0.1
> > response.write "<tr>"
> > response.write "<td nowrap><b>[" & k & "]</b></td>"
> > response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) & ")</td>"
> > response.write "<td nowrap>Redondeado(" & round((k + 0.5 *


Sgn(k)),2)
&
> > ")></td>"
> > response.write "<td height></td>"
> > response.write "</tr>"
> > next
> > %> </table > <br > <br > <br >
> > <%
> > k = -2.5
> > response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
> > %> </body > </html>
> >
> > use la funcion round, aproximando a dos decimales...
> >
> > "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió en


el
> > mensaje news:
> > > me quedo la crema (se pego el servidor) al redefinir el valor que
viene
> > del
> > > 'for' (k)
> > > ¿?
> > >
> > > "DiGiTaL" escribió en el mensaje
> > > news:%
> > > > Pues yo te sugiero que le des el formato al numero antes de
> > usarlo...algo
> > > > asi...
> > > >
> > > > CDbl(-3) o CInt(-3) segun lo necesietes...
> > > >
> > > > DiGiTaL...
> > > >
> > > > "NickName" <emersongutierrez_sacar_la_arroba_hotmail.com> escribió
en
> el
> > > > mensaje news:
> > > > > estuve molestando en redondear un número... pero no siempre daba
un
> > > mismo
> > > > > resultado, pensé que era por aplicaciones, pero es dentro de una
> misma
> > > > > página.
> > > > > es que no entrega los mismo valores dos sentencias, es como si a
> veces
> > > el
> > > > > número 2 para ASP es 1.999999
> > > > > entonces es diferente en el 'for' (también en 'while') como en
> > sentencia
> > > > > separada
> > > > >
> > > > > alguna idea.
> > > > >
> > > > > muchas gracias.
> > > > >
> > > > >
> _____________________________________________________________________
> > > > > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> > > > >
> > > > > <html>
> > > > > <head>
> > > > > <title>round</title>
> > > > > </head>
> > > > >
> > > > > <body>
> > > > >
> > > > > <table>
> > > > > <%
> > > > > for k = -3 to 3 step 0.1
> > > > > response.write "<tr>"
> > > > > response.write "<td nowrap><b>[" & k & "]</b></td>"
> > > > > response.write "<td nowrap>suma(" & (k + 0.5 * Sgn(k)) &


")</td>"
> > > > > response.write "<td nowrap>Redondeado(" & FIX(k + 0.5 * Sgn(k))


&
> > > > ")</td>"
> > > > > response.write "<td height></td>"
> > > > > response.write "</tr>"
> > > > > next
> > > > > %>
> > > > > </table>
> > > > > <br>
> > > > > <br>
> > > > > <br>
> > > > > <%
> > > > > k = -2.5
> > > > > response.write "<br><br>fix(" & 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > > > > response.write "sum(" & k + 0.5 * Sgn(k) & ")&nbsp;&nbsp;"
> > > > > response.write "tres(" & Fix(-3) & ")&nbsp;&nbsp;<br><br>"
> > > > > %>
> > > > >
> > > > > </body>
> > > > > </html>
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida