Notas e Moedas - Dica
Pessoal, tive certa dificuldade nesse exercício e vim recorrer às mensagens antigas aqui do fórum pra saber como resolver e resolvi compartilhar com vocês.
Apesar da minha resolução estar certa (testei no VSCode, porque não conseguia encontrar o erro no Beecrowd), o Beecrowd ficava acusando um erro na última moeda de 0.01.
Pesquisando por aqui, vi que muitas vezes há uma perda nesse valor de resto, então seria necessário ou adicionar um valor de +0.00001 ou adicionar um .toFixed(2) ao resto.
No meu código ficou assim:
valor = (valor % moeda).toFixed(2)
Espero que ajude outras pessoas com essa mesma dificuldade que eu tive.
Linked from:
Matheus V. Zarpellon @matheuszarpellonConversando com o @MarcusVogado, a gente também passou mal nesse exercício, ficamos um bom tempo quebrando a cabeça pra resolver. Nossas formas de resolver o problema como um todo, foram diferentes, mas aplicamos a mesma formula no calculo.
Para fazer os cálculos de quantidade de notas e modas, de modo geral, ambos usamos a função Math.floor. Quando eu identifiquei o problema do 0.01, avisei ele, e fizemos uma força-tarefa pra conseguir solucionar. A solução encontrada por ele pra resolver o 0.01 eu também apliquei no meu código, segue abaixo:
Math.floor(Math.round(valor / moedas[i])Gambiarra, mas funcionou. Haha.
MARCUS VOGADO @MarcusVogadoRapaz pensa num sufoco, kkk
mas no final deu certo.- Em resposta amatheuszarpellon⬆:
Jackson @JacksonEu usei o math.trunc() passou de primeira
Matheus V. Zarpellon @matheuszarpellonEu tentei usar o trunc, mas devo ter feito alguma coisa errada, ai segui a call do Marcus e deu certo.
- GEm resposta amarceleeller⬆:Guilherme Duarte @GuiDuarte07
No meu caso eu fiz só uma gambiarrazinha
if (valor > 0.0099 && valor < 0.01) valor = 0.01