No livro de Deitel tem esse exercício.
Um estacionamento cobra um taxa mínima de $ 2 para estacionar por até 3 horas. Um adicional de $0,50 por hora não necessariamente inteira é cobrado após as três primeiras horas. A carga máxima para qualquer dado período de 24 horas é de $10. Suponha que nenhum carro fica estacionado por mais de 24 horas por vez. Escreva um aplicativo que calcule e exiba as taxas de estacionamento para cada cliente atual e calcular e exibir o total dos recibos de ontem. O programa deve utilizar o método calculaCustos para determinar a cobrança para cada cliente.
E tem a seguinte resposta.
[code]public class Estacionamento {
double custo = 2;
private double tempo_estacionado;
public Estacionamento(double tempo) {
tempo_estacionado = tempo;
}
public double calculaCustos() {
double pagar;
if (tempo_estacionado <=3.0)
pagar = 2.0;
else if (tempo_estacionado <=19.0)
pagar=(custo+(0.50)*Math.ceil(tempo_estacionado - 3.0));
else
pagar = 10.0;
return pagar;
}[/code]
A minha dúvida é nessa parte: pagar=(custo+(0.50)*Math.ceil(tempo_estacionado - 3.0));
Suponhamos que fique no estacionamento 7 horas. O aplicativo deveria somar 2 reais das primeira 3 horas e depois somar mais 0,50 por hora.
O que daria 4 reais. A lógica acima dá certo mas não consigo compreendê-la.