Pseudo ou não é um comportamento ... Menos correcto que faz vitimas aos
menos experientes

Sent from my Lumia
 ------------------------------
From: João Fernandes <[email protected]>
Sent: 04/09/2013 17:49
To: riapt <[email protected]>
Subject: Re: [riapt] Ajuda Java script devolve NaN

Na realidade não é bug mas tem a ver com a forma do armazenamento do valor
que é um floating point binário.

Mais informação:
http://stackoverflow.com/questions/588004/is-javascripts-floating-point-math-broken
http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
http://stackoverflow.com/questions/1089018/why-cant-decimal-numbers-be-represented-exactly-in-binary

http://www.theregister.co.uk/2006/08/12/floating_point_approximation/
http://docs.python.org/2/tutorial/floatingpoint.html

São alguns exemplos que explicam porque é que existe este "pseudo-bug".



2013/9/4 Cristovão Morgado <[email protected]>

> tens só de ter cuidado com operações aritméticas em JS que há uns bugs
> depois nos arredondamentos!!!!
>
>
> 2013/9/4 Carlos Ribeiro <[email protected]>
>
>> Funcionou na perfeiça com :
>>
>> var count = count = *parseInt*( $(".row .fourcol").length);
>>  alert(count);
>>
>> Thanks
>>
>>
>> 2013/9/4 Carlos Ribeiro <[email protected]>
>>
>>> Obrigado a ambos, realmente já tinha tropeçado em parseInt  mas pensei
>>> em ignorar por achar que não seria necessário ir por aí.
>>>
>>>
>>> 2013/9/4 Ricardo Carneiro <[email protected]>
>>>
>>>> Viva,
>>>>
>>>> De qualquer das formas tens a função 
>>>> isNaN<http://www.w3schools.com/jsref/jsref_isnan.asp> para
>>>> verificares o tipo de valores que tens.
>>>>
>>>> Cumprimentos,
>>>>
>>>> *Ricardo Carneiro*
>>>> *About Me**   *http://about.me/rjcarneiro
>>>> *LinkedIn*     http://www.linkedin.com/in/rjcarneiro
>>>> *WPage*       http://ricardocarneiro.pt/
>>>>
>>>>
>>>> No dia 4 de Setembro de 2013 às 17:10, Cristovão Morgado <
>>>> [email protected]> escreveu:
>>>>
>>>> usa parseInt para converter os valores parseInt(
>>>>>  $("#sections").css('height'))
>>>>>
>>>>> porque o JS muda-te o tipo das variaveis em runtime .....
>>>>>
>>>>>
>>>>> 2013/9/4 Carlos Ribeiro <[email protected]>
>>>>>
>>>>>> Estou a efetuar uma operação multiplicadora entre as vairáveis *count
>>>>>>  *e *sections_height *e o valor obtido é Nan, no entanto quando faço
>>>>>> alert dos valores individuais das variáveis *count  *e *sections_height
>>>>>> *recebo os valores corretos. algume me pode ajudar?
>>>>>> Obrigado.
>>>>>>
>>>>>> $(document).ready(function(){
>>>>>>
>>>>>> calc();
>>>>>>
>>>>>> function calc() {
>>>>>> // contar numero de elementos na página
>>>>>>  var *count *= new Number(true);
>>>>>> count = $(".row .fourcol").length;
>>>>>> alert(count);  // DEVOLVE 15 -> CERTO
>>>>>>  // css -> #sections tem 310px de altura
>>>>>> var *sections_height *= new Number(true);
>>>>>>  sections_height = $("#sections").css('height');
>>>>>> alert(sections_height);  // DEVOLVE 310 -> CERTO
>>>>>>  var total = Number(count+sections_height);
>>>>>> alert("total = "+total);     // devolve NaN -> NOT A NUMBER
>>>>>>     }
>>>>>>
>>>>>> })
>>>>>> --
>>>>>> Carlos Ribeiro
>>>>>>
>>>>>> --
>>>>>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>>>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>>>> dos Grupos do Google.
>>>>>>
>>>>>> Para anular a subscrição deste grupo e parar de receber emails deste
>>>>>> grupo, envie um email para [email protected].
>>>>>> Para publicar uma mensagem neste grupo, envie um e-mail para
>>>>>> [email protected].
>>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>>> Para mais opções, consulte https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Cristovao Morgado
>>>>> @TheSaintr
>>>>>
>>>>>  --
>>>>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>>> dos Grupos do Google.
>>>>>
>>>>> Para anular a subscrição deste grupo e parar de receber emails deste
>>>>> grupo, envie um email para [email protected].
>>>>> Para publicar uma mensagem neste grupo, envie um e-mail para
>>>>> [email protected].
>>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>>> Para mais opções, consulte https://groups.google.com/groups/opt_out.
>>>>>
>>>>
>>>>  --
>>>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>> dos Grupos do Google.
>>>>
>>>> Para anular a subscrição deste grupo e parar de receber emails deste
>>>> grupo, envie um email para [email protected].
>>>> Para publicar uma mensagem neste grupo, envie um e-mail para
>>>> [email protected].
>>>> Visite este grupo em http://groups.google.com/group/riapt.
>>>> Para mais opções, consulte https://groups.google.com/groups/opt_out.
>>>>
>>>
>>>
>>>
>>> --
>>> Carlos Ribeiro
>>>
>>
>>
>>
>> --
>> Carlos Ribeiro
>>
>> --
>> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
>> Grupos do Google.
>>
>> Para anular a subscrição deste grupo e parar de receber emails deste
>> grupo, envie um email para [email protected].
>> Para publicar uma mensagem neste grupo, envie um e-mail para
>> [email protected].
>> Visite este grupo em http://groups.google.com/group/riapt.
>> Para mais opções, consulte https://groups.google.com/groups/opt_out.
>>
>
>
>
> --
> Cristovao Morgado
> @TheSaintr
>
>  --
> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
> Grupos do Google.
>
> Para anular a subscrição deste grupo e parar de receber emails deste
> grupo, envie um email para [email protected].
> Para publicar uma mensagem neste grupo, envie um e-mail para
> [email protected].
> Visite este grupo em http://groups.google.com/group/riapt.
> Para mais opções, consulte https://groups.google.com/groups/opt_out.
>



-- 

João Fernandes

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
Grupos do Google.

Para anular a subscrição deste grupo e parar de receber emails deste grupo,
envie um email para [email protected].
Para publicar uma mensagem neste grupo, envie um e-mail para
[email protected].
Visite este grupo em http://groups.google.com/group/riapt.
Para mais opções, consulte https://groups.google.com/groups/opt_out.

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para anular a subscrição deste grupo e parar de receber emails deste grupo, 
envie um email para [email protected].
Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Visite este grupo em http://groups.google.com/group/riapt.
Para mais opções, consulte https://groups.google.com/groups/opt_out.

Responder a