CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết trên blog CFSDN này nói sơ qua về chuyển đổi kiểu bắt buộc của PHP, hãy thận trọng khi sử dụng! Nó được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
PHP là một ngôn ngữ được gõ yếu. Đây là ưu điểm và tính năng của nó nhưng đôi khi bạn phải chuyển đổi kiểu cho phù hợp.
Đây là lúc vấn đề xảy ra. Vì trong nhiều trường hợp, bạn sẽ thấy dữ liệu thu được sau khi chuyển đổi kiểu khá khác so với giá trị mong đợi.
Ở đây tôi sử dụng chuyển đổi bắt buộc thành số nguyên làm ví dụ.
Nhìn vào đoạn mã bên dưới, có thể nói rằng hoàn toàn không có cách nào bạn có thể đưa ra câu trả lời chính xác. tiếng vang (int) 123.999999999999999; tiếng vang (int) -1.999999999999999; tiếng vang (int) -1.9999999999999999; tiếng vang (int) -0.999999999999999999; -10.999999999999999; tiếng vang (int) -1000.9999999999999; tiếng vang (int) -9999999999,
Chúng ta hãy nhìn vào kết quả tôi nhận được.
Đầu tiên tôi muốn giải thích môi trường hệ thống của tôi. win7 x86.
Kết quả thu được như sau.
124 -1 -2 -1 -10 -1001 -1410065407 。
Tuyên bố chính thức là:
Khi chuyển đổi từ số dấu phẩy động sang số nguyên, nó được làm tròn về 0. Nếu số dấu phẩy động nằm ngoài phạm vi số nguyên (thường là +/- 2,15e+9 = 2^31), kết quả sẽ không được xác định vì không có đủ độ chính xác để số dấu phẩy động đưa ra kết quả số nguyên chính xác. Không có cảnh báo nào trong trường hợp này, thậm chí không có bất kỳ thông báo nào! .
Nói nhiều như vậy, tôi có thể tóm tắt trong một câu: Thiếu chính xác không phải việc của tôi.
Nhìn thấy điều này, có thể bạn cho rằng ví dụ tôi đưa ra ở trên hơi viển vông. Bởi vì đơn giản là không thể sử dụng độ chính xác cao như vậy.
Vì vậy, hãy xem ví dụ sau.
tiếng vang(int) ( (0,1+0,7) * 10 ),
Không cần phải đoán, kết quả thực hiện ở đây là---7! .
Vâng, bạn đã đọc đúng và tôi gõ đúng, kết quả là 7 chứ không phải 8 như chúng ta thường nghĩ.
Bây giờ, bạn đã biết PHP tệ hại thế nào rồi! .
Quan chức PHP có cảnh báo này:
Không bao giờ chuyển một phân số chưa biết thành một số nguyên, vì điều này đôi khi có thể dẫn đến những kết quả không thể đoán trước.
Vì vậy hãy cẩn thận khi thực hiện chuyển đổi kiểu bắt buộc! Cần thận trọng khi sử dụng các giá trị số lớn, độ chính xác cao và phân số! .
Tất nhiên, ví dụ trên có thể được xử lý theo cách này. x$num = (0,1 + 0,7) * 10; echo (int) $num,
Cuối cùng, bài viết này thảo luận ngắn gọn về chuyển đổi kiểu bắt buộc của PHP, hãy thận trọng khi sử dụng. Vậy thôi. Nếu bạn muốn biết thêm về một cuộc thảo luận ngắn gọn về chuyển đổi kiểu bắt buộc của PHP, hãy thận trọng khi sử dụng các bài viết về CFSDN! Bài viết liên quan, hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!