obs: perl -E 'sub a{my $x = shift() * 1000; $x = int($x/200)*200; $x}; say a -0.799999999; say a -0.8' -600 -800
como esta arredondando via truncate, o 79999999999999 geralmente deveria estar no grupo do 800, OU NÃO! você que decide isso 2012/11/30 Renato Santos <renato.c...@gmail.com> > pronto, na 51 eu respondo! > > 2012/11/30 Aureliano Guedes <guedes_1...@hotmail.com> > >> Bruno, no meu if funcionou tanto com && quanto com and. O meu erro mesmo >> foi que a regex pegava um espasso. >> > pois é, vai funcionar! > #no more comments > >> Bem a minha duvida ficou em "porque seria problematico colocar reais em >> chaves de hash no meu caso?" >> > tenho quase certeza que, como já foi removido de um texto, o numero real > em questão, seja apenas um scalar, sem a flag de 'real' (se é existe essa > flag internamente), > > portanto, você pode colocar qualquer coisa nas chaves de um hash sem > problema > > (to em duvida se existe algum byte especial que é usado para separar as > chaves internamente, esse valor fica em uma das variaveis magicas) > > >> >> Se eu fosse pesquisar um valor especifico e tivesse duas ou mais chaves >> com o mesmo valor real seria problema >> > você tem que pesquisar exatamente o valor desejado, mas não tem problema > pois você esta percorrendo todas as chaves > >> mas no meu caso *i*mporta que o valor estej*e *em um determinado >> intervalo, podem ter 20 chaves iguais, estando no intervalo >> >> eu quero os 20 valores. 49?? >> > que? 20 chaves iguais não pode! > > > voltando a que eu respondi no email via celular, eu faria o codigo de > outra forma, > se for possivel e os intervalos forem já predetermindados: > no lugar de > $hmfe{$mirna} = $record if ($mirna); > eu já montaria ( fill, populate, do the inserts ) o hash com as chaves já > sendo o intervalo, calculado por uma funcao (que eu chameria de filtro) > > push(@{$hmfe{determina_intervalo($mirna)}, $record} if ($mirna); > > $truncate = 1000; # isso transforma -0.123456789 em -0.123 e desconsidera > o que estiver na frente do 3. o round-up transformaria em 0.12*4* > * > * > sub determina_intervalo { > my $valor = shift; > # isso so faz o truncate > $valor = int ($valor * $truncate) / $truncate; > > # depois separa em grupos de 200: > $valor *= 1000; > return int($valor/200)*200; # isso retorna só '200' que ja vale, mas > poderia ser tambem: > > my $tmp = int($valor/200)*200; > retrun "$tmp:".$tmp+200 # que vai retornar '-400:-200' que > } > > e assim o valor da chave do intervalo já contem todos os registros daquele > intervalo, nem de if precisa! > > perl -E 'sub a{my $x = shift() * 1000; $x = int($x/200)*200; $x}; say a > -0.12; say a -0.23; say a -0.25; say a -0.26; say a -5; say a -0.29; say a > -0.5; say a -0.71' > 0 > -200 > -200 > -200 > -5000 > -200 > -400 > -600 > > > >> ------------------------------ >> From: leonardo.bal...@gmail.com >> Date: Fri, 30 Nov 2012 00:15:50 -0200 >> >> To: rio-pm@pm.org >> Subject: Re: [Rio-pm] Chaves de hash >> >> Quero participar dessa discussao antes do 50. >> >> Por que tanta peculiariade na dicotomia de popular? >> >> Na buzilis da cizania ja nao era mais sobre Perl ou foi impressao minha? >> >> >> Leo Balter - via mobile >> >> Em 30/11/2012, às 00:02, Marcio Ferreira <marciodesouzaferre...@gmail.com> >> escreveu: >> >> 47 >> On Nov 29, 2012 11:35 PM, "Renato Santos" <renato.c...@gmail.com> wrote: >> >> #define float_epsilon 0.00001;#define float_equal(a,b) (fabs((a) - (b)) < >> float_epsilon) >> >> *BTW* >> >> 2012/11/29 Blabos de Blebe <bla...@gmail.com> >> >> float_equal >> >> >> >> >> -- >> Saravá, >> Renato CRON >> http://www.renatocron.com/blog/ >> @renato_cron <http://twitter.com/#%21/renato_cron> >> >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> >> >> _______________________________________________ Rio-pm mailing list >> Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm >> >> _______________________________________________ >> Rio-pm mailing list >> Rio-pm@pm.org >> http://mail.pm.org/mailman/listinfo/rio-pm >> > > > > -- > Saravá, > Renato CRON > http://www.renatocron.com/blog/ > @renato_cron <http://twitter.com/#!/renato_cron> > > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron <http://twitter.com/#!/renato_cron>
_______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm