Este programa funciona, excepto cuando el número de nJars es un múltiplo de 7, obtendré una respuesta como $ 14.999999999999998. Para 6, la salida es 14.08. ¿Cómo arreglo las excepciones para múltiplos de 7, por lo que mostrará algo así como $ 14.99?¿Cómo puedo limitar el número de decimales impresos para un doble?
import java.util.Scanner;
public class Homework_17
{
private static int nJars, nCartons, totalOunces, OuncesTolbs, lbs;
public static void main(String[] args)
{
computeShippingCost();
}
public static void computeShippingCost()
{
System.out.print("Enter a number of jars: ");
Scanner kboard = new Scanner (System.in);
nJars = kboard.nextInt();
int nCartons = (nJars + 11)/12;
int totalOunces = (nJars * 21) + (nCartons * 25);
int lbs = totalOunces/16;
double shippingCost = ((nCartons * 1.44) + (lbs + 1) * 0.96) + 3.0;
System.out.print("$" + shippingCost);
}
}
Como parece que es tarea, solo daré una pista: * Use la clase DecimalFormat. * –
¿Cuál es el problema al usar la clase provista por Java? No es una clase de terceros. –
duplicado de http://stackoverflow.com/questions/8819842/best-way-to-format-a-double-value-to-2-decimal-places –