Thread View: chile.comp.programacion
9 messages
9 total messages
Started by TheSpawn
Wed, 08 Aug 2007 08:34
PHP y MySQL
Author: TheSpawn
Date: Wed, 08 Aug 2007 08:34
Date: Wed, 08 Aug 2007 08:34
18 lines
1671 bytes
1671 bytes
Estimados, estoy trabajando con PHP y MySQL para el desarrollo de una aplicacion en donde tengo un rango con numero decimales mostrados en el combo box. El problema es que el rango de decimales va de 0 a 2.5 dentro de un while para el llenado de las options, pero solo me muestra de 0 a 2.4, pero si cambio el rango de 0 a un numero superior a 4 me muestra el ultimo sin problemas, por ejemplo de 0 a 4.5, me muestra el 4.5. Alguien sabe a que se debe este problema?... el campo lo tengo asignado como decimal(3,1) Saludos TheSpawn
Re: PHP y MySQL
Author: Jos� Miguel Santib��ez
Date: Wed, 08 Aug 2007 15:45
Date: Wed, 08 Aug 2007 15:45
26 lines
2229 bytes
2229 bytes
En el cap�tulo anterior (news:f9bh67$h5f$1@news.nivel5.cl), "TheSpawn" <al_simmon_spawn(sinesto)@hotmail.com> dijo: > Estimados, estoy trabajando con PHP y MySQL para el desarrollo de una > aplicacion > en donde tengo un rango con numero decimales mostrados en el combo > box. El problema > es que el rango de decimales va de 0 a 2.5 dentro de un while para el > llenado de las > options, pero solo me muestra de 0 a 2.4, pero si cambio el rango de 0 > a un numero superior > a 4 me muestra el ultimo sin problemas, por ejemplo de 0 a 4.5, me > muestra el 4.5. > > Alguien sabe a que se debe este problema?... el campo lo tengo > asignado como decimal(3,1) > > > puedes enviar el c�digo??? -- Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A. ordenaci�n de las news, cada post en su | <jms@nivel5.cl> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
Re: PHP y MySQL
Author: TheSpawn
Date: Wed, 08 Aug 2007 16:40
Date: Wed, 08 Aug 2007 16:40
54 lines
2667 bytes
2667 bytes
<?php
//Estas variables las completo desde la DB.
$maximo = 2.5;
$intervalo = 0,1;
$cont = 0;
while($cont <= $maximo)
{
<option value="$cont">$cont</option>
$cont = ($cont + $intervalo)
}
?>
El mismo codigo pero cambiando el valor $maximo a 4.5 o superior me muestra
el valor 4.5, pero para otro valor me muestra hasta ($maximo - $intervalo),
como en el codigo, me mostraria hasta 2.4.
Saludos.
TheSpawn
"Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl> wrote in message
news:Xns99867CBF8DA06jmsnews@201.238.250.229...
> En el cap�tulo anterior (news:f9bh67$h5f$1@news.nivel5.cl), "TheSpawn"
> <al_simmon_spawn(sinesto)@hotmail.com> dijo:
>
>> Estimados, estoy trabajando con PHP y MySQL para el desarrollo de una
>> aplicacion
>> en donde tengo un rango con numero decimales mostrados en el combo
>> box. El problema
>> es que el rango de decimales va de 0 a 2.5 dentro de un while para el
>> llenado de las
>> options, pero solo me muestra de 0 a 2.4, pero si cambio el rango de 0
>> a un numero superior
>> a 4 me muestra el ultimo sin problemas, por ejemplo de 0 a 4.5, me
>> muestra el 4.5.
>>
>> Alguien sabe a que se debe este problema?... el campo lo tengo
>> asignado como decimal(3,1)
>>
>>
>>
>
> puedes enviar el c�digo???
>
> --
> Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A.
> ordenaci�n de las news, cada post en su | <jms@nivel5.cl>
> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
Re: PHP y MySQL
Author: Jos� Miguel Santib��ez
Date: Wed, 08 Aug 2007 16:52
Date: Wed, 08 Aug 2007 16:52
40 lines
2548 bytes
2548 bytes
En el cap�tulo anterior (news:f9cdka$lds$1@news.nivel5.cl), "TheSpawn"
<al_simmon_spawn(sinesto)@hotmail.com> dijo:
> <?php
> //Estas variables las completo desde la DB.
> $maximo = 2.5;
> $intervalo = 0,1;
> $cont = 0;
>
> while($cont <= $maximo)
> {
> <option value="$cont">$cont</option>
> $cont = ($cont + $intervalo)
> }
> ?>
>
>
> El mismo codigo pero cambiando el valor $maximo a 4.5 o superior me
> muestra el valor 4.5, pero para otro valor me muestra hasta ($maximo -
> $intervalo), como en el codigo, me mostraria hasta 2.4.
>
plop! si no lo veo...
Asumo que tiene que ver con el problema de mantener y manejar n�meros
decimales... (de hecho, sacando los decimales (todo funciona bien).
Hay una vieja m�xima de programaci�n que dice que es inconveniente usar
comparaciones de igualdad entre n�meros de punto flotante, y me parece
que este es uno de esos casos donde queda en evidencia...
Para el caso, es 100% seguro usar:
while($cont < $maximo + $intervalo)
salute!
--
Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A.
ordenaci�n de las news, cada post en su | <jms@nivel5.cl>
lugar y el lugar exacto para cada post | <http://caos.cl/jms>
Re: PHP y MySQL
Author: +mArkO+
Date: Wed, 08 Aug 2007 17:19
Date: Wed, 08 Aug 2007 17:19
77 lines
3267 bytes
3267 bytes
la unica manera que encontre fue formateando los numeros
<?php
//Estas variables las completo desde la DB.
$maximo=number_format(2.5,1, '.', '');;
$intervalo=number_format(0.1,1, '.', '');;
$cont=number_format(0, 1, '.', '');;
while($cont<=$maximo)
{
echo ("<option value=\"$cont\">$cont</option><br>\n");
$cont=number_format($intervalo+$cont, 1, '.', '');
}
?>
ojala te sirva
"TheSpawn" <al_simmon_spawn(sinesto)@hotmail.com> escribi� en el mensaje
news:f9cdka$lds$1@news.nivel5.cl...
> <?php
> //Estas variables las completo desde la DB.
> $maximo = 2.5;
> $intervalo = 0,1;
> $cont = 0;
>
> while($cont <= $maximo)
> {
> <option value="$cont">$cont</option>
> $cont = ($cont + $intervalo)
> }
> ?>
>
>
> El mismo codigo pero cambiando el valor $maximo a 4.5 o superior me
> muestra el valor 4.5, pero para otro valor me muestra hasta ($maximo -
> $intervalo), como en el codigo, me mostraria hasta 2.4.
>
>
> Saludos.
>
> TheSpawn
>
>
>
>
> "Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl> wrote in message
> news:Xns99867CBF8DA06jmsnews@201.238.250.229...
>> En el cap�tulo anterior (news:f9bh67$h5f$1@news.nivel5.cl), "TheSpawn"
>> <al_simmon_spawn(sinesto)@hotmail.com> dijo:
>>
>>> Estimados, estoy trabajando con PHP y MySQL para el desarrollo de una
>>> aplicacion
>>> en donde tengo un rango con numero decimales mostrados en el combo
>>> box. El problema
>>> es que el rango de decimales va de 0 a 2.5 dentro de un while para el
>>> llenado de las
>>> options, pero solo me muestra de 0 a 2.4, pero si cambio el rango de 0
>>> a un numero superior
>>> a 4 me muestra el ultimo sin problemas, por ejemplo de 0 a 4.5, me
>>> muestra el 4.5.
>>>
>>> Alguien sabe a que se debe este problema?... el campo lo tengo
>>> asignado como decimal(3,1)
>>>
>>>
>>>
>>
>> puedes enviar el c�digo???
>>
>> --
>> Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A.
>> ordenaci�n de las news, cada post en su | <jms@nivel5.cl>
>> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
>
>
Re: PHP y MySQL
Author: TheSpawn
Date: Thu, 09 Aug 2007 04:49
Date: Thu, 09 Aug 2007 04:49
93 lines
3604 bytes
3604 bytes
Al parecer ese codigo funciona.
Muchas gracias por sus aportes :)
Saludos
TheSpawn
"+mArkO+" <kitim@porta.cl> wrote in message
news:f9cfti$lqa$1@news.nivel5.cl...
> la unica manera que encontre fue formateando los numeros
>
> <?php
> //Estas variables las completo desde la DB.
> $maximo=number_format(2.5,1, '.', '');;
> $intervalo=number_format(0.1,1, '.', '');;
> $cont=number_format(0, 1, '.', '');;
>
> while($cont<=$maximo)
> {
> echo ("<option value=\"$cont\">$cont</option><br>\n");
> $cont=number_format($intervalo+$cont, 1, '.', '');
> }
> ?>
>
> ojala te sirva
>
>
>
> "TheSpawn" <al_simmon_spawn(sinesto)@hotmail.com> escribi� en el mensaje
> news:f9cdka$lds$1@news.nivel5.cl...
>> <?php
>> //Estas variables las completo desde la DB.
>> $maximo = 2.5;
>> $intervalo = 0,1;
>> $cont = 0;
>>
>> while($cont <= $maximo)
>> {
>> <option value="$cont">$cont</option>
>> $cont = ($cont + $intervalo)
>> }
>> ?>
>>
>>
>> El mismo codigo pero cambiando el valor $maximo a 4.5 o superior me
>> muestra el valor 4.5, pero para otro valor me muestra hasta ($maximo -
>> $intervalo), como en el codigo, me mostraria hasta 2.4.
>>
>>
>> Saludos.
>>
>> TheSpawn
>>
>>
>>
>>
>> "Jos� Miguel Santib��ez" <jms.nospam@nivel5.cl> wrote in message
>> news:Xns99867CBF8DA06jmsnews@201.238.250.229...
>>> En el cap�tulo anterior (news:f9bh67$h5f$1@news.nivel5.cl), "TheSpawn"
>>> <al_simmon_spawn(sinesto)@hotmail.com> dijo:
>>>
>>>> Estimados, estoy trabajando con PHP y MySQL para el desarrollo de una
>>>> aplicacion
>>>> en donde tengo un rango con numero decimales mostrados en el combo
>>>> box. El problema
>>>> es que el rango de decimales va de 0 a 2.5 dentro de un while para el
>>>> llenado de las
>>>> options, pero solo me muestra de 0 a 2.4, pero si cambio el rango de 0
>>>> a un numero superior
>>>> a 4 me muestra el ultimo sin problemas, por ejemplo de 0 a 4.5, me
>>>> muestra el 4.5.
>>>>
>>>> Alguien sabe a que se debe este problema?... el campo lo tengo
>>>> asignado como decimal(3,1)
>>>>
>>>>
>>>>
>>>
>>> puedes enviar el c�digo???
>>>
>>> --
>>> Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A.
>>> ordenaci�n de las news, cada post en su | <jms@nivel5.cl>
>>> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
>>
>>
>
>
Re: PHP y MySQL
Author: Eduardo Romero
Date: Thu, 09 Aug 2007 22:12
Date: Thu, 09 Aug 2007 22:12
65 lines
3090 bytes
3090 bytes
El ciclo fijate q sumas un decimal y lo tienes valorizado con una coma.
La prueba esta q definas el intervalo con un decimal mas peque??o y veras
q llegara a 2.499
Saludos
Edo.
In chile.comp.www TheSpawn <al_simmon_spawn(sinesto)@hotmail.com> wrote:
> <?php
> //Estas variables las completo desde la DB.
> $maximo = 2.5;
> $intervalo = 0,1;
> $cont = 0;
>
> while($cont <= $maximo)
> {
> <option value="$cont">$cont</option>
> $cont = ($cont + $intervalo)
> }
> ?>
>
>
> El mismo codigo pero cambiando el valor $maximo a 4.5 o superior me muestra
> el valor 4.5, pero para otro valor me muestra hasta ($maximo - $intervalo),
> como en el codigo, me mostraria hasta 2.4.
>
>
> Saludos.
>
> TheSpawn
>
>
>
>
> "Jos� Miguel Santib�??ez" <jms.nospam@nivel5.cl> wrote in message
> news:Xns99867CBF8DA06jmsnews@201.238.250.229...
>> En el cap�tulo anterior (news:f9bh67$h5f$1@news.nivel5.cl), "TheSpawn"
>> <al_simmon_spawn(sinesto)@hotmail.com> dijo:
>>
>>> Estimados, estoy trabajando con PHP y MySQL para el desarrollo de una
>>> aplicacion
>>> en donde tengo un rango con numero decimales mostrados en el combo
>>> box. El problema
>>> es que el rango de decimales va de 0 a 2.5 dentro de un while para el
>>> llenado de las
>>> options, pero solo me muestra de 0 a 2.4, pero si cambio el rango de 0
>>> a un numero superior
>>> a 4 me muestra el ultimo sin problemas, por ejemplo de 0 a 4.5, me
>>> muestra el 4.5.
>>>
>>> Alguien sabe a que se debe este problema?... el campo lo tengo
>>> asignado como decimal(3,1)
>>>
>>>
>>>
>>
>> puedes enviar el c�digo???
>>
>> --
>> Apoye a la campa??a de alfabetizaci�n y | Jose M. Santiba??ez A.
>> ordenaci�n de las news, cada post en su | <jms@nivel5.cl>
>> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
>
>
Re: PHP y MySQL
Author: Eduardo Romero
Date: Fri, 10 Aug 2007 16:28
Date: Fri, 10 Aug 2007 16:28
76 lines
3546 bytes
3546 bytes
Le di mas vueltas al tema y al parecer es un error de punto flotante
y como lo interpreta php en forma interna. La prueba
esta que defines el maximo con otros valores similares y a veces resulta
y otros no.
Al invertir el while, tb sucede el mismo error.
Saludos
Edo.
In chile.comp.programacion Eduardo Romero <edo@edo.cl> wrote:
> El ciclo fijate q sumas un decimal y lo tienes valorizado con una coma.
>
> La prueba esta q definas el intervalo con un decimal mas peque??o y veras
> q llegara a 2.499
>
> Saludos
> Edo.
>
> In chile.comp.www TheSpawn <al_simmon_spawn(sinesto)@hotmail.com> wrote:
>> <?php
>> //Estas variables las completo desde la DB.
>> $maximo = 2.5;
>> $intervalo = 0,1;
>> $cont = 0;
>>
>> while($cont <= $maximo)
>> {
>> <option value="$cont">$cont</option>
>> $cont = ($cont + $intervalo)
>> }
>> ?>
>>
>>
>> El mismo codigo pero cambiando el valor $maximo a 4.5 o superior me muestra
>> el valor 4.5, pero para otro valor me muestra hasta ($maximo - $intervalo),
>> como en el codigo, me mostraria hasta 2.4.
>>
>>
>> Saludos.
>>
>> TheSpawn
>>
>>
>>
>>
>> "Jos� Miguel Santib�??ez" <jms.nospam@nivel5.cl> wrote in message
>> news:Xns99867CBF8DA06jmsnews@201.238.250.229...
>>> En el cap�tulo anterior (news:f9bh67$h5f$1@news.nivel5.cl), "TheSpawn"
>>> <al_simmon_spawn(sinesto)@hotmail.com> dijo:
>>>
>>>> Estimados, estoy trabajando con PHP y MySQL para el desarrollo de una
>>>> aplicacion
>>>> en donde tengo un rango con numero decimales mostrados en el combo
>>>> box. El problema
>>>> es que el rango de decimales va de 0 a 2.5 dentro de un while para el
>>>> llenado de las
>>>> options, pero solo me muestra de 0 a 2.4, pero si cambio el rango de 0
>>>> a un numero superior
>>>> a 4 me muestra el ultimo sin problemas, por ejemplo de 0 a 4.5, me
>>>> muestra el 4.5.
>>>>
>>>> Alguien sabe a que se debe este problema?... el campo lo tengo
>>>> asignado como decimal(3,1)
>>>>
>>>>
>>>>
>>>
>>> puedes enviar el c�digo???
>>>
>>> --
>>> Apoye a la campa??a de alfabetizaci�n y | Jose M. Santiba??ez A.
>>> ordenaci�n de las news, cada post en su | <jms@nivel5.cl>
>>> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
>>
>>
Re: PHP y MySQL
Author: Jos� Miguel Santib��ez
Date: Fri, 10 Aug 2007 16:49
Date: Fri, 10 Aug 2007 16:49
18 lines
2025 bytes
2025 bytes
En el cap�tulo anterior (news:f9i3n6$e71$1@sirius.globalcom.cl), Eduardo Romero <edo@edo.cl> dijo: > Le di mas vueltas al tema y al parecer es un error de punto flotante > y como lo interpreta php en forma interna. La prueba > esta que defines el maximo con otros valores similares y a veces > resulta y otros no. > > Al invertir el while, tb sucede el mismo error. > sip.. el "2.5" se transforma internamente en un "2.4999999" -- Apoye a la campa�a de alfabetizaci�n y | Jose M. Santiba�ez A. ordenaci�n de las news, cada post en su | <jms@nivel5.cl> lugar y el lugar exacto para cada post | <http://caos.cl/jms>
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads