Bạn có thể nên chia tỷ lệ giá trị thập phân của mình cho 100 và đại diện cho tất cả các giá trị tiền tệ trong toàn bộ xu. Điều này là để tránh các vấn đề với logic và số học dấu phẩy động . Không có kiểu dữ liệu thập phân trong JavaScript - loại dữ liệu số duy nhất là dấu phẩy động. Do đó, thông thường nên xử lý tiền như 2550
xu thay vì 25.50
đô la.
Hãy xem xét điều đó trong JavaScript:
var result = 1.0 + 2.0; // (result === 3.0) returns true
Nhưng:
var result = 0.1 + 0.2; // (result === 0.3) returns false
Biểu thức 0.1 + 0.2 === 0.3
trả về false
, nhưng may mắn là số học số nguyên trong dấu phẩy động là chính xác, do đó có thể tránh được các lỗi biểu diễn thập phân bằng cách chia tỷ lệ 1 .
Lưu ý rằng trong khi tập hợp các số thực là vô hạn, chỉ có một số hữu hạn trong số chúng (chính xác là 18,437,736,874,454,810,627) có thể được biểu diễn chính xác bằng định dạng dấu phẩy động JavaScript. Do đó, đại diện của các số khác sẽ là một xấp xỉ của số 2 thực tế .
1 Douglas Crockford: JavaScript: Các bộ phận tốt : Phụ lục A - Các bộ phận khủng khiếp (trang 105) .
2 David Flanagan: JavaScript: Hướng dẫn dứt khoát, Phiên bản thứ tư : 3.1.3 Văn học dấu phẩy động (trang 31) .