1
resposta

pq meu programa não da certo

<meta charset="UFT-8">
<h1> calculadora de preços</h1>
<script>
    alert("informe os valores solicitados");
    var p = prompt("informe o preço de custo do produto na nota");
    var f = prompt("informe o valor do frete");
    var s = prompt("informe o ST em %");
    function calcula (s, p, f) { return 1.45*(s/100 + 1)*(p + f); }
    document.write(" o preço de revenda é: " + calcula(s, p, f));
</script>

já tentei escrever a equação de várias formas diferentes mas só dá certo se a "function" tiver dois parâmetros

1 resposta

Olá, Filipe! Tudo bem?

Logo de início, peço desculpas pela demora em retornar.

Por padrão, a função prompt() coleta as informações recebidas e as transforma em tipo string, isto é, tipo texto (mesmo que o dado seja um número, tal como ocorre em seu código). Nesse sentido, quando tentamos trabalhar com números que foram transformados em string, não conseguimos realizar determinadas operações matemáticas — como soma e subtração.

Para que seja possível realizar tais operações, precisamos transformar o dado recebido por prompt(), logo em sua chamada, em um valor numérico, como mostra o exemplo abaixo:

var p = parseFloat(prompt("informe o preço de custo do produto na nota"));

Observe que agora há uma nova função em torno de prompt(). A função parseFloat() é utilizada para converter certos valores em números reais. Sendo assim, depois desta alteração, conseguimos realizar o cálculo corretamente!

Filipe, caso queira ver como ficou todo o código após as alterações, aqui está:

<meta charset="UFT-8">
<h1> calculadora de preços</h1>
<script>
    alert("informe os valores solicitados");
    var p = parseFloat(prompt("informe o preço de custo do produto na nota"));
    var f = parseFloat(prompt("informe o valor do frete"));
    var s = parseFloat(prompt("informe o ST em %"));
    function calcula (s, p, f) { return 1.45*(s/100 + 1)*(p + f); }
    document.write(" o preço de revenda é: " + calcula(s, p, f));
</script>

Espero tê-lo ajudado! Caso surjam outras dúvidas, estarei à disposição para te auxiliar!

Forte abraço.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.