Pq  vc já não faz as contas toda na própria sentença?? Mesmo a detalhada.


2009/4/8 sergio santos <sergio.serginhos...@gmail.com>

> 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
>
>


-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast -> Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ -> Ouça a rádio e faça gratuitamente um Curso Biblico
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a