Một đồng nghiệp của tôi tình cờ phát hiện ra một phương pháp làm nổi số phao bằng cách sử dụng bitwise hoặc:
var a = 13.6 | 0; //a == 13
Chúng tôi đã nói về nó và tự hỏi một vài điều.
- Làm thế nào nó hoạt động? Lý thuyết của chúng tôi là việc sử dụng một toán tử như vậy sẽ chuyển số thành một số nguyên, do đó loại bỏ phần phân số
- Nó có bất kỳ lợi thế hơn làm
Math.floor
? Có lẽ nó nhanh hơn một chút? (chơi chữ không có ý định) - Liệu nó có bất kỳ nhược điểm? Có lẽ nó không hoạt động trong một số trường hợp? Rõ ràng là một điều hiển nhiên, vì chúng tôi phải tìm ra nó, và tốt, tôi đang viết câu hỏi này.
Cảm ơn.
3000000000.1 | 0
ước tính đến -1294967296. Vì vậy, phương pháp này không thể được áp dụng cho tính toán tiền (đặc biệt trong trường hợp bạn nhân với 100 để tránh số thập phân).
0.1 + 0.2 == 0.3
vào bảng điều khiển JavaScript. Nếu ngôn ngữ của bạn hỗ trợ nó, bạn nên sử dụng loại thập phân. Nếu không, lưu trữ xu thay thế.