Ola pessoal, estou com um problema de arrendondamento de valores, acorre que o sistema divide o valor do pedido pelo numero de parcelas, mas qdo o cliente paga o valores divididos ,ao se somar da uma difernça de centavos, como fazer pra não ocorrer esta diferença?
Grande abralo a todos
Arrendondamento de valores
Moderador: Moderadores
Prezado Colega
O que acontece é que nem sempre uma divisão é exata, quando ele não é extata existem as dizimas e a soma destas precisa ser colocada em uma das parcelas.
Exemplo : Valor total = 257,00 dividido por 3 = 85,66
Porém se mutiplicarmos 85,66 x 3 = 256,68
Desta forma haverá uma diferença de 2 centavos
O que você pode fazer é descobrir quanto é o resto da divisão e então colocá-lo em uma das parcelas, geralmente a 1ª ou na última.
Você poderia fazer assim, vamos supor :
//VALORTOTAL=257,00
//PARCELA1=85,66
//PARCELA2=85,66
//PARCELA3=85,66
RESTO=VALORTOTAL-(PARCELA1+PARCELA2+PARCELA3)
// RESTO 0,02
PARCELA1+=RESTO
// PARCELA1=85,68
// Agora seria 85,68 + 85,66 + 85,66 = 257,00
Deu para entender ?
Até logo.
Marcelo
O que acontece é que nem sempre uma divisão é exata, quando ele não é extata existem as dizimas e a soma destas precisa ser colocada em uma das parcelas.
Exemplo : Valor total = 257,00 dividido por 3 = 85,66
Porém se mutiplicarmos 85,66 x 3 = 256,68
Desta forma haverá uma diferença de 2 centavos
O que você pode fazer é descobrir quanto é o resto da divisão e então colocá-lo em uma das parcelas, geralmente a 1ª ou na última.
Você poderia fazer assim, vamos supor :
//VALORTOTAL=257,00
//PARCELA1=85,66
//PARCELA2=85,66
//PARCELA3=85,66
RESTO=VALORTOTAL-(PARCELA1+PARCELA2+PARCELA3)
// RESTO 0,02
PARCELA1+=RESTO
// PARCELA1=85,68
// Agora seria 85,68 + 85,66 + 85,66 = 257,00
Deu para entender ?
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Ex:
vParc = vOrig / qParc
vTemp = vParc * (qParc-1)
vUltParc = vOrig - vTemp
Dessa forma não é necessário se preocupar com arredondamentos ou se o vOrig é divisível pela qParc sem deixar restos...
vParc = vOrig / qParc
vTemp = vParc * (qParc-1)
vUltParc = vOrig - vTemp
Dessa forma não é necessário se preocupar com arredondamentos ou se o vOrig é divisível pela qParc sem deixar restos...
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
muito boa esta.. ehehhehe
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Isso foi um elogio ou o quê ??clebermano escreveu:muito boa esta.. ehehhehe
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
-
clebermano
- Usuário Nível 3

- Mensagens: 187
- Registrado em: 03 Out 2004 12:39
- Contato:
elogio ué.. q mais achou q fosse????
gostei da forma que a funcao foi escrita....

gostei da forma que a funcao foi escrita....
Vastec - Automacao Comercial Ltda - Ribeirao Preto - SP. (16)3968-2299-(16)8154-7828 (16)8121-4139
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
msn: suporte@clebermano.com.br - email: clebermanorp@yahoo.com.br
Quem nao vive pra servir nao serve pra viver !
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
(Y) Thanks...clebermano escreveu:elogio ué.. q mais achou q fosse????
gostei da forma que a funcao foi escrita....
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
