Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Meus amigos, preciso da ajuda de vocês para um problema que creio deva ser comum para vocês, mas infelizmente não consigo resolver. Eu venho da área de desenvolvimento para DESKTOP e ainda estou estudando e me adaptando ao PHP, então se meu código estiver muito ruim podem dizer.
Tenho em minha tabela campos do tipo FLOAT, onde armazeno os valores digitados pelo usuário e um deles armazena o total.
A tela (a pedido do cliente) possui somente 5 linhas para a inclusão de valores dos serviços executados, quando o usuário digita o valor em cada campo criei uma função para que a soma seja feita automaticamente, mas ele esta JUNTANDO os valores ao invés de somar.
Este é o meu INPUT
<input maxlength="17" value="<?php echo $orca1?>" name="orca1" id="orca1" type="float" size="20" OnBlur="soma();"/>
A FUNÇÃO soma()
<script>
function soma(){
$valor1 = form.orca1.value;
$valor2 = form.orca2.value;
form.ttorca.value = ( $valor1 + $valor2 );
}
</script>
Uma função bem simples somente para atualizar o campo TTORCA.
A tela no momento da digitação
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/r69HWe1.jpg&key=83121fbab58896ec746fe815af9d70432c5ae45b3e1d050e9bac620f84e7c90f" alt="r69HWe1.jpg" />
Agradeço antecipadamente a ajuda de vocês.
Gabriel,
Primeiro obrigado pela ajuda.
O parseFloat que você disse realmente consertou o problema do cálculo, ele passou a fazer a conta corretamente.
Veja a imagem:
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/b8vobfK.jpg&key=5a3f36472587cadb88acbccda4e70e9ce1988dde9f28762fdfd38c75a6726ce3" alt="b8vobfK.jpg" />
Já pesquisei sobre number_format, mas ainda não consegui fazer com que o total fique somente com as duas casas decimais:
Veja meu comando: echo number_format($ttorca, 2, ".", ",");
Não resolveu, bem como também não funcionou para permitir que o usuário faça a digitação do valor com vírgula para separar a casa decimal e não o ponto.
Alguma dica?
opa,
o separador de decimais do javascript é o . então seu código precisa adequar o valor para quando o usuário digitar a vírgula.
Como o Gabriel falou, seu código é javascript e não PHP, então sugiro que pesquise uma função de formatação de números para javascript...
Obrigado Zeca,
Vou pesquisar e assim que conseguir eu posto aqui.
a função equivalente do javascript é a toFixed()
(12.00000).toFixed(2)'12.00'
Seu código e javascript e não PHP.
Entretanto, você está trabalhando com strings ao invés de numerais (utilize float nesse caso):