Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Calculando porcentagens diferente de acordo com resul


Guest Felipe Freitas

Pergunta

Guest Felipe Freitas

Boa tarde pessoal, vou descrever abaixo meu problema.

Preciso de uma calculadora em que a pessoa preencha os dados e dê os resultados de acordo com o valor de certo campo, vou tentar explicar abaixo.

Vamos imaginar 5 campos: campo1, campo2, campo3, resultado1 e resultado 2.

Preciso que ela multiplique por exemplo o campo1 pelo campo2 pelo campo3 e de o resultado no campo resultado1.

De acordo com o valor do campo resultado1 se ele for menor do que 500, dar o resultado2 150

Se o valor no campo resultado1 for maior que 501 e menor do que 1000, multiplicar por 0.15, subtrair 2% e dar o resultado no campo resultado2.

Se o valor no campo resultado1 for maior que 1001 e menor do que 1500, multiplicar por 0.15, subtrair 3% e dar o resultado no campo resultado2.

Se o valor no campo resultado1 for maior que 1501 e menor do que 2000, multiplicar por 0.15, subtrair 5% e dar o resultado no campo resultado2.

E assim vai até o ultimo valor q eu preciso que é acima de 1000000 multiplicar por 0.15, subtrair 70% e dar o resultado no campo resultado2.

Espero que me ajudem, preciso muito disso e não estou disposto a pagar o valor absurdo que me pediram por esse aplicativo.

Atenciosamente

Felipe Freitas.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Cara vou te dar uma noção de como fazer:

Para fazer a soma, divisão, use o código abaixo:

(Number(CAMPO1.TEXT)+Number(CAMPO2.TEXT)

Ai você só muda o simbolo do meio:

- : Menos

+ : Mais

/ : Dividido

* : Multiplicar

Para fazer esses parâmetro:

Se o valor no campo resultado1 for maior que 501 e menor do que 1000, multiplicar por 0.15, subtrair 2% e dar o resultado no campo resultado2.

Você usa o "if", Veja um meu tutorial q ensina a usar o if

Enquanto você vai tendo uma noção eu vou tentando fazer aqui!

falou!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Felipe Freitas

Boa tarde, obrigado pelas respostas Raphael, através dela consegui chegar a isso:

on (press) {
    cm2 = Number(larg)*Number(comp)*Number(qtd);
    if (cm2<=500) {
        pre = Number(150);
    } else if (cm2>=501) {
        pre = Math.abs(Number((cm2-500)*Number(0.15)+Number(150))*Number(0.02)-Number((cm2-500)*Number(0.15)+Number(150)));
    }
}
Explicando: Existem 5 campos com as seguintes Vars: larg, comp, qtd, cm2 e pre. Quando preenchido os campos larg, comp e qtd eu aperto o botão com o código acima e ele me da dois resultado, 1 no campo cm2 de acordo com essa conta:
cm2 = Number(larg)*Number(comp)*Number(qtd);
E outro no campo pre com essa conta:
Math.abs(Number((cm2-500)*Number(0.15)+Number(150))*Number(0.02)-Number((cm2-500)*Number(0.15)+Number(150)));
Foram acrescentado alguns números necessários na conta que preciso que é subtrair 500 e depois adicionar 150. Acima fiz o seguinte > O resultado do campo cm2 é subtraido por 500, multiplicado por 0.15, adicionando 150 e depois multiplicado por 0.02 que me dará 2% do total como resultado, como não sei como pegar o resultado e subtrair dele 2% precisei fazer isso. Então como o resultado fica só os 2% do total preciso do total - 2% então na mesma conta fiz pegar novamente o valor do campo cm2 subtrair por 500, multiplicar por 0.15, adicionar 150. Ficou assim: 2% do total - total, então recebo o resultado negativo, usei então
Math.abs()
para inverter negativo para positivo no campo. AGORA O PROBLEMA Como citei no post acima preciso de valores diferentes nas contas de acordo com o resultado do campo cm2, as linhas:
if (cm2<=500) {
        pre = Number(150);
Fazem caso cm2 seja menor igual que 500 o campo pre seja 150, até ai tudo bem, agora as linhas:
} else if (cm2>=501) {
        pre = Math.abs(Number((cm2-500)*Number(0.15)+Number(150))*Number(0.02)-Number((cm2-500)*Number(0.15)+Number(150)));
Fazem caso cm2 seja maior igual que 501 ele faça a conta que expliquei acima, em cima de 2%. Tentei então fazer o seguinte para fazer as contas em cima de 3%, 5% etc como citado no post do tópico:
on (press) {
    cm2 = Number(larg)*Number(comp)*Number(qtd);
    if (cm2<=500) {
        pre = Number(150);
    } else if (cm2>=501) {
        pre = Math.abs(Number((cm2-500)*Number(0.15)+Number(150))*Number(0.02)-Number((cm2-500)*Number(0.15)+Number(150)));
    } else if (cm2>=1001) {
        pre = Math.abs(Number((cm2-500)*Number(0.15)+Number(150))*Number(0.03)-Number((cm2-500)*Number(0.15)+Number(150)));
    }
}

Mas não deu certo, ele continua fazendo a conta em cima dos 2% (0.02), não passa a fazer em cima dos 3% (0.03) quando cm2 é maior que 1001, o que devo mudar para acrescentar mais casos?

Obrigado desde já !

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...