Script Não Soma Casa Decimais ...
#1
Posted 12/03/2006, 04:27
Pedaço do código:
$pago="0.00";
#### Carrega o Saldo disponível
$dbh = DBI->connect("DBI:mysql:$database:$host","$username","$password");
$sth=$dbh->prepare("SELECT controle,valor,status,favorecido FROM parc_saque WHERE id='$id1' LIMIT 5");
$sth->execute;
while(@ultimas=$sth->fetchrow_array){
($tid,$valor,$situacao,$favorecido) = (@ultimas);
$pago=$valor + $pago;
}
print "$pago";
Alguem tem uma solução pra ele mostrar o valor certo? (R$ 14,95)
Hospedagem de Sites // Revenda de Hospedagem // Streaming & Web Rádio // Domínios // Vps
Hospedagem Ilimitada -> R$ 15,00 ao Mês + 30 Dias Grátis
Outros Sites: Jogos Loucos em Flash | Divulgue seu site Gratis | Web Masters Dicas & Tutoriais
#2
Posted 12/03/2006, 15:27
Fiz outro esquema
Converti para número inteiro ( $total =~ s/\.//ig; ) e depois somei ( $total=$total+$valor; ), o resultado dividi por 100 ($total=$total/100;), depois tive que formatar o valor total pra mostrar corretamente as casas decimais
tipo: TOTAL = 15000 / 100 = R$ 150,00
Hospedagem de Sites // Revenda de Hospedagem // Streaming & Web Rádio // Domínios // Vps
Hospedagem Ilimitada -> R$ 15,00 ao Mês + 30 Dias Grátis
Outros Sites: Jogos Loucos em Flash | Divulgue seu site Gratis | Web Masters Dicas & Tutoriais
#3
Posted 13/03/2006, 07:09
mais deve ser algo assim
$var = sprint(0.2d,($valor+$valor2));
ele pega o valor, ja soma e ajusta as casas decimais
mais toma cuidado nas somas com o perl
pois ele so entende que a variavel é valor em $$ se tiver em "." (ponto) se for ",")(virgula) ele nao entende, então é bom sempre da um $valor =~s/,/./ig; no valor antes da soma
ok
abraços
#4
Posted 13/03/2006, 13:02
$preco = '13.00';
$total = '1.20';
$total = sprintf("%.2f",($total + $preco));
e vc pode calcurar quantidades tambem...
$total = sprintf("%.2f",($preco_produto * $quantidade_produto));
Edição feita por: prix, 13/03/2006, 13:03.
print join'',(reverse map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;
E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.
#5
Posted 17/03/2006, 14:28
$inteiro = 5;
$parte = 2.5346;
sprintf("%d", $inteiro); # imprime o numero inteiro
sprintf("%03d", $inteiro); # formata o numero em 3 casas a esquerda, 005
sprintf("%2.2f", $parte); # formata o numero em 2 casas a esquerda e 2 casas a direta
sprintf("%.2f", $parte); # formata o numero em 2 casas a esquerda e deixa como esta qualquer casa acima.
print join'',(reverse map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;
E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)