Hàm toString() của Double trong Java

Các bác giúp em với ạ, em bị tình trạng in ra giá trị không mong muốn khi đang làm calculator bằng Java

public class Main2 {
    public static void main(String[] args) {
        double d = 1.2;
        double l = 1.3;
        System.out.println(d-l);
    }
}

Và output nó ra là
-0.10000000000000009 BUILD SUCCESSFUL (total time: 0 seconds)

Giải thích hộ em với ạ :joy:

toString của double, hình như bạn bị hiểu sai về java???

vấn đề của bạn có thể giải quyết như thế này float rs= (float)(d-l); System.out.println(rs);

thêm pần giải thích cho bạn. bạn có thể tự tìm trên gg có rất nhiều nhưng đại khái là java không thể lưu chính xác giá trị 0.1 thay vào đó là 0.1000000000000000055511151231257827021181583404541015625

Có 1 đống cách để làm việc này

d-l =Double.parseDouble(new DecimalFormat("##.##").format(d-l));

hoặc

x= d-l = Math.floor(x * 100) / 100;

hoặc  round , String.format ........ vân vân và mây mây =))

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?