[Hỏi Vui] Giá trị của cái này là bao nhiêu?



  • Math.abs(3.*(4./3.-1.)-1.);
    


  • @Phuc-Phan66
    Theo tính toán bằng 0

    4/3=1.333333333
    1.333333333-1=0.333333333
    0.333333333*3=1
    1-1=0
    |0|=0
    

    nhưng console.log lại ra

    console.log(Math.abs(3.*(4./3.-1.)-1));
    // 2.220446049250313e-16
    

    cũng không biết sao



  • do chuẩn IEEE 754... còn giải thích thì rất dài, thôi mời các bạn Google.
    Đó là lí do khi viết chương trình yêu cầu cx cao mình dùng C, Golang



  • Mình nghĩ có thể do giới hạn của kiểu dữ liệu, sau đây là minh họa:
    4/3=1.333333333
    1.333333333-1=0.333333333
    0.333333333*3=0.999999999
    0.999999999-1=-0.000000001
    ....



  • 2.220446049250313e-16 ~ 0.00000000000000002220446049....... ~ 0 mà


Log in to reply