Esse processo deve receber um valor de troco e calcular quantas moedas de cada valor são necessárias para o troco. Por exemplo, se o troco for de R$ 0,85, serão necessárias uma moeda de 0,50, uma de 0,25 e uma de 0,10.
Ele deve receber um valor e imprimir a quantidade de cada moeda.
/**
* @(#)troco.java
*
*
* @author
* @version 1.00 2009/3/31
*/
public class troco {
/**
* Creates a new instance of <code>troco</code>.
*/
public troco() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
double troco = 0.0;
int t100, t050, t025, t010, t005, t001;
t100=0;
t050=0;
t025=0;
t010=0;
t005=0;
t001=0;
troco=9.6;
while (troco > 0)
{
if (troco >= 1)
{
troco=troco-1;
t100++;
} else if (troco >= 0.50)
{
troco=troco-0.50;
t050++;
} else if (troco >= 0.25)
{
troco=troco-0.25;
t025++;
} else if (troco >= 0.10)
{
troco=troco-0.10;
t010++;
} else if (troco >= 0.05)
{
troco=troco-0.05;
t005++;
} else if (troco >= 0.01)
{
troco=troco-0.01;
t001++;
}
}
if (t100 > 0)
System.out.printf(t100 + " Moeda(s) de um Real\n");
if (t050 > 0)
System.out.printf(t050 + " Moeda(s) de Cinquenta Centavos\n");
if (t025 > 0)
System.out.printf(t025 + " Moeda(s) de Vinte e Cinco Centavos\n");
if (t010 > 0)
System.out.printf(t010 + " Moeda(s) de Dez Centavos\n");
if (t005 > 0)
System.out.printf(t005 + " Moeda(s) de Cinco Centavos\n");
if (t001 > 0)
System.out.printf(t001 + " Moeda(s) de Um Centavo\n");
}
}
Quando tem valores que o troco precisa de moedas de 0,10 - 0,05 - 0,01 ele fica em loop eterno é como se perdesse a precisão na hora de diminui o valor do troco… já tentei mudar pra double mas simplesmente acontece nada