当我运行程序时,DecimalFormat 不符合我的预期。 示例:当我输入点 3.2 3.5 4.9 时,我希望结果:3.8 但它:3.8666667143503823。 当我输入点2 2 2时,结果:2.0 为什么?
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Nhập vào điểm môn chuyen can :");
double diemChuyenCan = scanner.nextFloat();
System.out.println("Nhập vào điểm kiểm tra: ");
double diemKiemTra = scanner.nextFloat();
System.out.println("Nhập vào điểm học kỳ: ");
double diemHocKy = scanner.nextFloat();
DecimalFormat dcf = new DecimalFormat("#.#");
double diemMonHoc = (diemChuyenCan + diemKiemTra + diemHocKy) /3;
dcf.format(diemMonHoc);
if(diemMonHoc>=8) {
System.out.println("Điểm trung bình là: "+ diemMonHoc + " Môn
học giỏi");
}else if(diemMonHoc >= 6.5 && diemMonHoc < 8){
System.out.println(" Môn học khá");
}else if( diemMonHoc >= 5 && diemMonHoc < 6.5) {
System.out.println(diemMonHoc +" Môn học trung bình");
}else {
System.out.println(diemMonHoc +" Môn học kém");
}
}
最佳答案
无需深入了解代码的逻辑(不理解行话)
DecimalFormat dcf = new DecimalFormat("#.#");
double diemMonHoc = (diemChuyenCan + diemKiemTra + diemHocKy) /3;
// format returns a String, so use that
String formattedDate = dcf.format(diemMonHoc);
System.out.println (formattedDate );
关于java - 程序平均运行不符合我的预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53076777/