Re: [pgbr-geral] Resultado de linhas em colunas
Bom dia, dê uma olhada na função crosstab ( http://www.postgresql.org/docs/8.3/interactive/tablefunc.html), pode ser a solução para o que desejas. Atenciosamente, 2009/4/8 Marcelo Costa marcelojsco...@gmail.com Olá, bom dia Possuo uma tabela id ddd telefone 1 011 12343456 2 011 34562783 3 011 09773625 Estou precisando que o resultado seja exibido assim: id dd1 telefone1 ddd2 telefone2 ddd3 telefone3 ... 1 011 12343456 011 34562783 011 09773625 Ou seja cada linha que pertença a um mesmo id precisa ser exibida como uma coluna O sono não está deixando as idéias fluirem...alguém tem uma dica ? Valeu -- Marcelo Costa www.marcelocosta.net - “Os muito poderosos e os muito estúpidos possuem uma coisa em comum. Ao invés de alterarem as suas visões para se ajustarem aos fatos do mundo, eles alteram os fatos para ajustá-los às suas visões.”, Doctor Who. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- André de Camargo Fernandes Cel: (11) 7421-1379 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Problemas ao iniciar PostgreSQL
Olá, De acordo com a mensagem informada o valor de work_mem está incorreto. Na instalação original o valor tem que estar expresso: #work_mem=1MB Este parâmetro é configurado no postgresql.conf. Se o valor estiver diferente coloque o valor padrão é tente iniciar o serviço novamente. 2009/4/7 Lucas Souza lucassouzadav...@gmail.com 2009/4/7 Rodrigo Aires rodrigoai...@terra.com.br Olá Lista, Estou com problema para inicializar o serviço do PostgreSQL 8.3.7. Acabei de instalar no Ferora 8 mas quando tento iniciar ocorre o erro invalid values for parameter work_mem: -D provavelmente o valor do parametro work_mem, no arquivo postgresql.conf é invalido substitua por outro valor, ou comente esta linha com # na frente, e tente iniciar novamente , Tentei iniciar o serviço com as configurações padrões de instalação e também tentei incluir o parâmetro work_mem com um valor numérico no postgresql.conf e nada. Alguém teria alguma sugestão? Desde já agradeço. - Rodrigo Aires Desenvolvedor Delphi e .NET Administrador de Banco de Dados ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- -- Lucas de Souza D'Ávila Graduando em Sistema de Informação - Escola Superior de Criciúma, ESUCRI (localizada em Criciuma, SC) CV Lattes: http://lattes.cnpq.br/9245658982061645 Visite o blog http://merendas.blogspot.com/ http://twitter.com/lucasdsd ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral []s -- JotaComm http://jotacomm.wordpress.com http://www.dextra.com.br/postgres ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Resultado de linhas em colunas - RESOLVIDO
Respondendo minha dúvida 2009/4/8 Marcelo Costa marcelojsco...@gmail.com: Olá, bom dia Possuo uma tabela id ddd telefone 1 011 12343456 2 011 34562783 3 011 09773625 Estou precisando que o resultado seja exibido assim: id dd1 telefone1 ddd2 telefone2 ddd3 telefone3 ... 1 011 12343456 011 34562783 011 09773625 Ou seja cada linha que pertença a um mesmo id precisa ser exibida como uma coluna Utilizei a função crosstab: http://www.postgresql.org/docs/current/static/tablefunc.html crosstab vem nos contribs em tablefunc. Resolveu meu problema direitinho Nada como um bom café... -- Marcelo Costa www.marcelocosta.net - “Os muito poderosos e os muito estúpidos possuem uma coisa em comum. Ao invés de alterarem as suas visões para se ajustarem aos fatos do mundo, eles alteram os fatos para ajustá-los às suas visões.”, Doctor Who. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Resultado de linhas em colunas
Olá, bom dia Possuo uma tabela id ddd telefone 1 011 12343456 2 011 34562783 3 011 09773625 Estou precisando que o resultado seja exibido assim: id dd1 telefone1 ddd2 telefone2 ddd3 telefone3 ... 1 011 12343456 011 34562783 011 09773625 Ou seja cada linha que pertença a um mesmo id precisa ser exibida como uma coluna O sono não está deixando as idéias fluirem...alguém tem uma dica ? Valeu -- Marcelo Costa www.marcelocosta.net - “Os muito poderosos e os muito estúpidos possuem uma coisa em comum. Ao invés de alterarem as suas visões para se ajustarem aos fatos do mundo, eles alteram os fatos para ajustá-los às suas visões.”, Doctor Who. ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] PQnotifies
Olá pessoal, estou fazendo a integração e aplicativo ao Postgresql através da libpq. Estou precisando obter o retorno de notify para tratamento. A função abaixo, elaborada com o xharbour e compilada com o bcc deveria fazer isso. Contudo, na execução em Windows, ela não retorna o membro relname da estrtutura e aborta a aplicação. Se determino o retorno da estrutura notify ( hb_retc(notify) ), aparecem uns caracteres estranhos, de tamanho totalmente diferente do nome da notificação que deveria retornar. O que PQnotfies retorna extamente. Obrigado. MarceloG HB_FUNC (PQNOTIFIES) { PGnotify *notify; PQconsumeInput (( PGconn * ) hb_parptr(1)); notify = PQnotifies(( PGconn * ) hb_parptr(1)); hb_retc(notify-relname); PQfreemem(notify); }___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Digest pgbr-geral, volume 26, assunto 18 : Problemas para transferir bancos
Osvaldo, Desculpe esqueci de detalhar, para administrar os bancos uso o PG Admin III um com uma conexão remota e o outro local. Para transferir de um para o outro executo a opção do pg Admin III: Copia de segurança padrão e depois executo a opção Restaura que gera o código: (pg_restore.exe -h localhost -p 5432 -U postgres -d radar -v C:\Documents and Settings\mbiasi\Desktop\bancoradar.backup). Configurações de LC de um para o outro: Local (Windows XP) lc_collate;Portuguese_Brazil.1252 lc_ctype;Portuguese_Brazil.1252 lc_messages;Portuguese_Brazil lc_monetary;Portuguese_Brazil lc_numeric;Portuguese_Brazil lc_time;Portuguese_Brazil Remoto (Linux); lc_collate;en_US.UTF-8 lc_ctype;en_US.UTF-8 lc_messages;pt_BR.UTF-8 lc_monetary;pt_BR.UTF-8 lc_numeric;pt_BR.UTF-8 lc_time;pt_BR.UTF-8 Abs -Mensagem original- De: pgbr-geral-boun...@listas.postgresql.org.br [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de pgbr-geral-requ...@listas.postgresql.org.br Enviada em: terça-feira, 7 de abril de 2009 15:52 Para: pgbr-geral@listas.postgresql.org.br Assunto: Digest pgbr-geral, volume 26, assunto 18 Send pgbr-geral mailing list submissions to pgbr-geral@listas.postgresql.org.br To subscribe or unsubscribe via the World Wide Web, visit https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral or, via email, send a message with subject or body 'help' to pgbr-geral-requ...@listas.postgresql.org.br You can reach the person managing the list at pgbr-geral-ow...@listas.postgresql.org.br When replying, please edit your Subject line so it is more specific than Re: Contents of pgbr-geral digest... Tópicos de Hoje: 1. Re: Transações Concorrentes ou paralelas no PostgreSQL. (Euler Taveira de Oliveira) 2. Re: Re plicação Multi master pglcuster - pgpool-II ou Outro (Euler Taveira de Oliveira) 3. Re: Re plicação Multi master pglcuster - pgpool-II ou Outro (charles andre) 4. Re: Select que retorna o valor médio em um intervalo de tempo (Newton Teixeira do Nascimento Júnior) 5. Problemas para transferir bancos (Mauricio De Biasi) 6. Problemas ao iniciar PostgreSQL (Rodrigo Aires) 7. Re: Problemas para transferir bancos (Euler Taveira de Oliveira) 8. Re: Select que retorna o valor médio em um intervalo de tempo (Osvaldo Kussama) -- Message: 1 Date: Tue, 07 Apr 2009 12:40:12 -0300 From: Euler Taveira de Oliveira eu...@timbira.com Subject: Re: [pgbr-geral] Transações Concorrentes ou paralelas no PostgreSQL. To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Message-ID: 49db73dc.50...@timbira.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed Adenilton B. da Silva escreveu: Gostaria de saber se é possível, no PostgreSQL, obter várias transações concorrentes ou paralelas em uma mesma conexão, tal qual ocorre no Interbase/Firebird. O PostgreSQL não trabalha assim; uma transação por vez em cada conexão. Algo como obter a ID da transação em seu início em efetuar commit ou rollback de acordo com esse ID, pois se executarmos duas vezes o comando begin em determinada query/conexão no postgreSQL, na segunda execução é retornado a mensagem WARNING: there is already a transaction in progress. Não entendi qual o seu objetivo aqui... Acho que você está confundindo os conceitos; o PostgreSQL não paraleliza transações na mesma conexão. Quanto ao porque do questionamento está no fato de o PostgreSQL criar um processo no servidor cada vez que um conexão/transação é aberta, gerando um grande consumo de memória (ao meu ver sem necessidade). Isso é uma questão de arquitetura. Não, o PostgreSQL *não* mudará isso. Se o tempo de abertura de conexões é crítico para a sua aplicação, utilize um aglomerador (aka pool). -- Euler Taveira de Oliveira http://www.timbira.com/ -- Message: 2 Date: Tue, 07 Apr 2009 12:53:19 -0300 From: Euler Taveira de Oliveira eu...@timbira.com Subject: Re: [pgbr-geral] Re plicação Multi master pglcuster - pgpool-II ou Outro To: Comunidade PostgreSQL Brasileira pgbr-geral@listas.postgresql.org.br Message-ID: 49db76ef.8040...@timbira.com Content-Type: text/plain; charset=ISO-8859-1; format=flowed charles andre escreveu: Pelo que estudei o pgpool-II em caso de falha para sincronizar o servidor que saiu do ar ele usa o PITR ou RSYNC e o pgcluster usa o RSYNC. Em uma base de dados muito grande em torno de 20 TB acho que essa sincronização não é viavel: o pitr varios arquivos a serem copiados, controle dos arquivos etc e o rsync trava o sistema de arquivos ppara poder copiar os dados ? Mesmo em uma base de dados com dezenas de terabytes, o que você precisa é copiar somente os logs de transação (em sistemas de baixa alteração isso pode ser poucos megabytes). O rsync trava o que? Ele não
[pgbr-geral] Currval
Bom dia, pessoal. Ao tentar buscar o valor corrente de uma sequência acontece o seguinte erro: currval of sequence ctrc_numero is not yet defined in this session. No pgAdmin funciona, mas na aplicação não. O que fazer? Obrigado! At.te, Alisson Viegas Acsiv Sistemas ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Currval
2009/4/8 Alisson Viegas p...@acsiv.com.br: Bom dia, pessoal. Ao tentar buscar o valor corrente de uma sequência acontece o seguinte erro: currval of sequence “ctrc_numero” is not yet defined in this session. No pgAdmin funciona, mas na aplicação não. O que fazer? Obrigado! De acordo com o manual [1] você só pode chamar a currval após um nextval. (An error is reported if nextval has never been called for this sequence in this session.) [1] http://www.postgresql.org/docs/current/interactive/functions-sequence.html Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Currval
oi, essa mensagem que voce esta recebendo significa que a sequence nao foi utilizada nenhuma vez ainda dentro da conexao(sua sessao) na qual voce esta perguntando pelo valor corrente... quando voce podera usar currval: quando houver um insert na tabela que utiliza um serial e esse serial estiver atrelado a essa sequence... quando voce chamar explicitamente nextval... quando um campo de uma tabela onde ocorrer um insert estiver definido como por exemplo campo integer default nextval('nome_sequence'). 2009/4/8 Osvaldo Kussama osvaldo.kuss...@gmail.com 2009/4/8 Alisson Viegas p...@acsiv.com.br: Bom dia, pessoal. Ao tentar buscar o valor corrente de uma sequência acontece o seguinte erro: currval of sequence “ctrc_numero” is not yet defined in this session. No pgAdmin funciona, mas na aplicação não. O que fazer? Obrigado! De acordo com o manual [1] você só pode chamar a currval após um nextval. (An error is reported if nextval has never been called for this sequence in this session.) [1] http://www.postgresql.org/docs/current/interactive/functions-sequence.html Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Ivo Nascimento - Iann - | twitter: ivonascimento . | | http://ianntech.com.br. | | ZCE ID 227463685| - ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] RES: Currval
Entendido. Obrigado! At.te, Alisson Viegas Acsiv Sistemas De: pgbr-geral-boun...@listas.postgresql.org.br [mailto:pgbr-geral-boun...@listas.postgresql.org.br] Em nome de ivo nascimento Enviada em: quarta-feira, 8 de abril de 2009 11:27 Para: Comunidade PostgreSQL Brasileira Assunto: Re: [pgbr-geral] Currval oi, essa mensagem que voce esta recebendo significa que a sequence nao foi utilizada nenhuma vez ainda dentro da conexao(sua sessao) na qual voce esta perguntando pelo valor corrente... quando voce podera usar currval: quando houver um insert na tabela que utiliza um serial e esse serial estiver atrelado a essa sequence... quando voce chamar explicitamente nextval... quando um campo de uma tabela onde ocorrer um insert estiver definido como por exemplo campo integer default nextval('nome_sequence'). 2009/4/8 Osvaldo Kussama osvaldo.kuss...@gmail.com 2009/4/8 Alisson Viegas p...@acsiv.com.br: Bom dia, pessoal. Ao tentar buscar o valor corrente de uma sequência acontece o seguinte erro: currval of sequence “ctrc_numero” is not yet defined in this session. No pgAdmin funciona, mas na aplicação não. O que fazer? Obrigado! De acordo com o manual [1] você só pode chamar a currval após um nextval. (An error is reported if nextval has never been called for this sequence in this session.) [1] http://www.postgresql.org/docs/current/interactive/functions-sequence.html Osvaldo ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral -- Ivo Nascimento - Iann - | twitter: ivonascimento . | | http://ianntech.com.br. | | ZCE ID 227463685| - ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
[pgbr-geral] Arredondamento pg do PHP
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? abraços -- 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
Re: [pgbr-geral] Arredondamento pg do PHP
Sergio, Duas situações distintas. Arredondamento e truncar, no PG está arredondado, já no PHP está truncando. Arredondar é aumentar ou diminuir o valor, dada a sua necessidade ou definido pelo programa. Truncar é cortar/retirar o número x de casas que não se deseja (ou cortar/retirar até a parte desejada). É indicado vc fazer o tratamento através de programação (aka PHP) e depois executar o procedimento. Abraços. 2009/4/8 sergio santos sergio.serginhos...@gmail.com: 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? abraços -- 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 -- Armando Roque http://www.linkedin.com/in/armandoroque http://dropsdef.blogspot.com http://del.icio.us/dropsdef ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Arredondamento pg do PHP
Em 08/04/09, sergio santossergio.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. 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
Re: [pgbr-geral] Arredondamento pg do PHP
Em 08/04/09, Osvaldo Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
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 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
Olá, Você tem que seguir a mesma metodologia em ambos: Ou você arrendonda o resultado final (como você fez no banco) ou você arredonda por partes (como você fez no PHP). O ideal é que você somente arredonde no fim de modo a diminuir o erro em seus cálculos. Luigi Castro Cardeles 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 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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 ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Arredondamento pg do PHP
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 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
Olá Nilson Além do ROUND eu andia faço um SUM e acrescento um GROUP BY no final... por isso não posso fazer dessa forma. sobre o que o Luigi falou eu já tentei fazer assim usando a mesma metodologia nas duas consultas.. só que quando o valor muda, segue outro exemplo, dá tudo errado de novo: vejam: liquido = 115.71; valor_comissao = 0.5; valor_comissao_receber = 1; numparc = 7; numparc_pg = 1; no PHP echo round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2); vai retornar 8.26 já no SQL (ROUNDvalor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numparc_pg),2)) vai retornar 8.27 obrigado pessoal 2009/4/8 Nilson Chagas nilson.chagas.si...@gmail.com 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 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
sergio santos escreveu: (...) vejam: liquido = 115.71; valor_comissao = 0.5; valor_comissao_receber = 1; numparc = 7; numparc_pg = 1; no PHP echo round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2); vai retornar 8.26 r...@desenvolvimento:~# cat php.php ?php $liquido = 115.71; $valor_comissao = 0.5; $valor_comissao_receber = 1; $numparc = 7; $numparc_pg = 1; echo round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2); echo \n\n; ? r...@desenvolvimento:~# php php.php 8.27 r...@desenvolvimento:~# php -v PHP 4.4.9 (cli) (built: Oct 30 2008 19:02:23) -- []´s, André Volpato ___ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
Re: [pgbr-geral] Arredondamento pg do PHP
Não tem como vc postar sua sentença sql detalhada?? Ainda não vi problema, SUM E GROUP BY?? Não vejo problema mesmo. 2009/4/8 sergio santos sergio.serginhos...@gmail.com Olá Nilson Além do ROUND eu andia faço um SUM e acrescento um GROUP BY no final... por isso não posso fazer dessa forma. sobre o que o Luigi falou eu já tentei fazer assim usando a mesma metodologia nas duas consultas.. só que quando o valor muda, segue outro exemplo, dá tudo errado de novo: vejam: liquido = 115.71; valor_comissao = 0.5; valor_comissao_receber = 1; numparc = 7; numparc_pg = 1; no PHP echo round((($liquido*$valor_comissao*$valor_comissao_receber)/$numparc)*$numparc_pg,2); vai retornar 8.26 já no SQL (ROUNDvalor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numparc_pg),2)) vai retornar 8.27 obrigado pessoal 2009/4/8 Nilson Chagas nilson.chagas.si...@gmail.com 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 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
Eu utilizo funções: Tente: //arredondado (8.56,2); function arredondar_dois_decimal($valor) { $float_arredondar=round($valor * 100) / 100; return $float_arredondado; } //Funcao function arredondado ($numero, $decimais) { $fator = pow(10, $decimais); return (round($numero*$fator)/$fator); } Atts, Paulo. VisualP Sistemas. - Original Message - From: sergio santos To: Comunidade PostgreSQL Brasileira Sent: Wednesday, April 08, 2009 3:47 PM Subject: Re: [pgbr-geral] Arredondamento pg do PHP 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 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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
Re: [pgbr-geral] Arredondamento pg do PHP
Ola pessoal usei a ideia do Paulo e fiz uma adaptação. Na verdade eu modifiquei a função dele para fazer um truncation com a função ceil do PHP fiz a mesma coisa no SQL e PIMBA funcionu vejam a função: function arredondar_dois_decimal($valor) { $float_arredondar=ceil($valor*100)/100; return $float_arredondar; } já no SQL fiz assim: (CEILvalor_liquido*valor_comissao*valor_comissao_receber)/numparc)*numparc_pg)*100)/100) abraços e obrigado a todos 2009/4/8 PAULO p@terra.com.br Eu utilizo funções: Tente: //arredondado (8.56,2); function arredondar_dois_decimal($valor) { $float_arredondar=round($valor * 100) / 100; return $float_arredondado; } //Funcao function arredondado ($numero, $decimais) { $fator = pow(10, $decimais); return (round($numero*$fator)/$fator); } Atts, Paulo. VisualP Sistemas. - Original Message - *From:* sergio santos sergio.serginhos...@gmail.com *To:* Comunidade PostgreSQL Brasileirapgbr-geral@listas.postgresql.org.br *Sent:* Wednesday, April 08, 2009 3:47 PM *Subject:* Re: [pgbr-geral] Arredondamento pg do PHP 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 (ROUNDvalor_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 Kussamaosvaldo.kuss...@gmail.com escreveu: Em 08/04/09, sergio santossergio.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