Olá Hellan, primeiro gostaria de dizer que foi muito legal a sua ideia.
Tem 2 detalhes que podem tornar o seu programa melhor.
O primeiro é que se a gente colocar o valor de R$15,99
ele vai apresentar um erro porque o JavaScript segue o padrão americano de números, lá eles não usam a vírgula para contabilizar os centavos, eles usam o ponto.
Logo, se eu colocar R$15,99
ele vai retornar NaN (que significa Not a Number, ou seja, o sistema entendeu que os 15,99 não é um número logo ele não pode calcular).
Para solucionar esse problema você pode usar o método replace
. Esse método busca pelo primeiro parâmetro, onde ele achar ele substitui pelo segundo parâmetro
Antes:
var precoCarne = prompt("Me diz também o preço do(da) " + nomeCarne + ".");
Sugestão:
var precoCarneSubstituido = precoCarne.replace(',', '.');
Agora uma observação amigo, precisamos transformar esse número vindo de precoCarneSubstituido
em número novamente, porque o método replace
transforma em string (letras), sem estar em número não conseguimos fazer contas.
Logo precisamos fazer o seguinte:
var precoCarneConvertido = Number(precoCarneSubstituido);
O segundo detalhe estava na função calcula, você estava usando a variável externa para calcular a diferença e não o parâmetro passado.
Antes estava assim:
function calcula(preco) {
return (precoCarne - 14.99);
}
A sugestão é que fique assim:
function calcula(preco) {
return (preco - 14.99);
}
Para finalizar, sobre a sua dúvida de deixar apenas 2 casas decimais, podemos usar o método toFixed
ou invés do Math.round
:
Antes:
Math.round(resultado)
Sugestão, porque esse método ele delimita os decimais em 2 casas:
resultado.toFixed(2)
Resumindo, com essas alterações sugeridas o seu programa ficaria assim:
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha;
}
function calcula(preco) {
return (preco - 14.99);
}
var nome = prompt("Olá, seja bem vindo. Qual é o seu nome?");
alert(nome + ", hoje o frango Super Frango está de promoção! Está saindo a bandeja com 1kg a R$ 14,99.");
var nomeCarne = prompt("Ah, gostou da carne? Vamos comparar o preço. Qual o nome da carne que quer comparar?");
var precoCarne = prompt("Me diz também o preço do(da) " + nomeCarne + ".");
var precoCarneSubstituido = precoCarne.replace(',', '.')
var precoCarneConvertido = Number(precoCarneSubstituido);
var resultado = calcula(precoCarneConvertido);
alert("O frango saindo a R$ 14,99, e o(a) " + nomeCarne + " saindo a R$ " + precoCarne + ", a diferença é de R$ " + resultado.toFixed(2) + " reais.");
Achei muito legal sua ideia Hellan, qualquer dúvida estou a disposição e se tiver sugestões pode mandar aqui a baixo pra a gente ir conversando e aprendendo mais juntos.
Forte abraço!