Chương trình này hoạt động, trừ khi số lượng nJars là bội số của 7, tôi sẽ nhận được câu trả lời như $ 14.999999999999998. Đối với 6, đầu ra là 14,08. Làm thế nào để sửa lỗi ngoại lệ cho bội số của 7 vì vậy nó sẽ hiển thị một cái gì đó như $ 14,99?Làm cách nào để hạn chế số lượng số thập phân được in cho gấp đôi?
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);
}
}
Vì có vẻ như đó là bài tập về nhà, tôi sẽ chỉ gợi ý: * Sử dụng lớp DecimalFormat. * –
Sự cố khi sử dụng lớp do Java cung cấp là gì? Nó không phải là bất kỳ lớp bên thứ ba. –
trùng lặp của http://stackoverflow.com/questions/8819842/best-way-to-format-a-double-value-to-2-decimal-places –