java - 程序平均运行不符合我的预期

标签 java

当我运行程序时,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/

相关文章:

java - 解释 Java 语法

java - 为什么我只能从表中获取一条记录?

java - 如何通过在android中前后添加双引号来传递文本

java - 如何使用 Spring 验证密码

java - 获取出现次数最大次数

java - 错误的类型推断

java - 如何从JPA中具有相同值的一列中获取sql中的唯一行?

java - 在 Spring 之上开发基于插件的架构

java - 什么是好的嵌入式 Java LDAP 服务器?

带有通配符的Java泛型问题