Entendi... mais o meu problema continua rs eu tenho dois relatórios que buscam os mesmos valores no banco de dados... só que um é todo detalhado, por isso prociso fazer as contas em PHP, já o outro é todo sumarizado e então eu faço as contas na própria SQL.
logo eu tenho os seguintes valores no banco de dados: liquido = 167.69; valor_comissao = 0.5; valor_comissao_receber = 1; numparc = 10; numparc_pg = 1; em PHP eu faço as contas assim: $a = round($liquido*$valor_comissao,2); $b = round($a*$valor_comissao_receber,2); $c = round($b/$numparc,2); $d = round($c*$numparc_pg,2); echo round($d,2); vai retornar 8.39 no SQL eu faço as contas assim: SELECT (ROUND((((valor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numparc_pg),2)) FROM ... vai retornar 8.38 já tentei fazer um monte de coisas e tudo tá dando errado... alguém tem alguma idéia pra poder me ajudar. abraços 2009/4/8 Luigi Castro Cardeles <luigi.carde...@gmail.com> > Sim e não :) > > Se você está trabalhando com matemática de ponto flutuante esse é um > resultado possível. > > Arredondando somente no fim: > > 2,34 * 8,67 = 20,2878 ~ 20,29 > > se você arredondar individualmente: > > 2,34 ~ 2,3 > 8,67 ~ 8,7 > > 2,3 * 8,7 = 20,01 > > []'s > > Luigi Castro Cardeles > > > 2009/4/8 sergio santos <sergio.serginhos...@gmail.com> > > Pessoal >> vejam bem >> >> essas são minhas variáveis: >> >> $liquido = 115.71; >> $valor_comissao = 0.5; >> $valor_comissao_receber = 1; >> $numparc = 7; >> $numparc_pg = 1; >> >> Quando eu faço assim: >> >> round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2); >> o resultaod é 8.26 ou seja, diferente do arredondamento no PostgreSQL >> >> já quando eu faço passo a passo, ele me retorna o mesmo valor que o >> PostgreSQL está retornando >> >> $a = round($liquido*$valor_comissao,2); >> $b = round($a*$valor_comissao_receber,2); >> $c = round($b/$numparc,2); >> $d = round($c*$numparc_pg,2); >> echo round($d,2); >> >> estranho.... >> >> 2009/4/8 Osvaldo Kussama <osvaldo.kuss...@gmail.com> >> >> Em 08/04/09, Osvaldo Kussama<osvaldo.kuss...@gmail.com> escreveu: >>> > Em 08/04/09, sergio santos<sergio.serginhos...@gmail.com> escreveu: >>> >> Pessoal o arredondamento od PosgreSQL funciona assim: >>> >> 8.265 = 2.27 >>> >> >>> >> e o do PHP é assim: >>> >> 8.265 = 2.26 >>> >> >>> >> tem uma forma de eu forçar o PosgreSQL a arredondar igual ao PHP? >>> >> >>> > >>> > >>> > Em primeiro lugar eu duvido que tanto o PostgreSQL quanto o PHP façam >>> > o arredondamento acima descrito. >>> > Agora se você estiver falando de 8.265 = 8.26, bem isto é o que se >>> > espera, matematicamente falando. >>> >>> Ooops! >>> Queria dizer na frase acima: >>> 8.265 = 8.27 >>> >>> >>> > >>> > Creio que o PHP também não faz da forma como você descreveu, veja o >>> > manua (particularmente os 2 últimos exemplos)l: >>> > <?php >>> > echo round(3.4); // 3 >>> > echo round(3.5); // 4 >>> > echo round(3.6); // 4 >>> > echo round(3.6, 0); // 4 >>> > echo round(1.95583, 2); // 1.96 >>> > echo round(1241757, -3); // 1242000 >>> > echo round(5.045, 2); // 5.05 >>> > echo round(5.055, 2); // 5.06 >>> > ?> >>> > http://br.php.net/round >>> > >>> > Mas você sempre pode criar sua própria função de arredondamento. >>> > >>> > Osvaldo >>> > >>> _______________________________________________ >>> pgbr-geral mailing list >>> pgbr-geral@listas.postgresql.org.br >>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >>> >> >> >> >> -- >> Sérgio Antônio dos Santos >> Bacharel em Sistemas de Informação >> (31) 8573-7004 >> >> _______________________________________________ >> pgbr-geral mailing list >> pgbr-geral@listas.postgresql.org.br >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral >> >> > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- Sérgio Antônio dos Santos Bacharel em Sistemas de Informação (31) 8573-7004
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral