Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Float và Double trong c#

19:59 15-12-2017 3.258 lượt xem 6 bình luận 21:22 18-12-2017
Double a = 3.14;
float b = 3.14f;
            if (a == b)
            {
                Console.WriteLine("Right");
            }
            else { Console.WriteLine("Wrong"); }


           Console.ReadKey();

Mình có đoạn code như trên cho mình hỏi tại sao a lại nhỏ hơn b cũng là 3.14

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 20:37 15-12-2017

nó không phải lấy giá trị bạn nhìn thấy để so sánh mà nó so sánh theo dấu chấm động. Theo giá trị dãy bit của nó.

ở đây k == chứ k phải nhỏ hơn

Dinh Tona đã bình luận 21:22 18-12-2017

Hình như chữ f là rút gọn lại, trong chữ f còn số nữa ^^. Pi là số thập phân vô hạn mà !

Nguyen đã bình luận 19:01 16-12-2017

float là 4 byte còn double là 8 byte nên 2 cái sẽ có phần khác nhau, và nó so sánh với nhau qua dấu chấm động nữa, thường ít khi phải so sánh mấy số như thế này lắm, với cả bạn nhìn là 3.14 nhưng thực chất nó cũng chỉ là số làm tròn mà thôi

Vector đã bình luận 10:40 16-12-2017

- thường thì so sánh mấy cái số thập phân này là không nên nhé. k có gì chắc chắn là nó sẽ bằng nhau cả.
- tuy nhiên trong thực tế đôi khi ta cần so sánh. các bạn có thể xài cách này của mình.
- nhân cả 2 số đó với 10000 hoặc 1 triệu gì đó. sau đó ép sang kiểu nguyên và so sánh.
- 100% là đúng.

CommunistBoy đã bình luận 22:13 15-12-2017

Mình hiểu rồi mình cám ơn nhé!

Câu hỏi mới nhất