Tôi đang tạo một ứng dụng ngân sách với javascript. Tôi phải để javascript làm hầu hết các hoạt động. Vì vậy, tôi có một số điều khiển mà người dùng thay đổi số tiền mong muốn cho một danh mục và ứng dụng của tôi hiển thị số tiền mới cho các danh mục phụ. Vì vậy, Nếu tôi có + Auto $ 50,23 - Gas $ 30,25 - Bảo trì $ 6.27 - Bảo hiểm $ 10,02 - ...Hoạt động tiền tệ với javaScript?
Vì vậy, nếu người dùng thay đổi Auto 50,23-90,00, số tiền cho khí, bảo trì, bảo hiểm, vv sẽ phản ánh mức tăng% trong danh mục gốc của chúng.
Vấn đề là sau một vài thao tác, tôi mất độ chính xác và tạo ra một số lỗi khó chịu. Hầu hết các lần số không thêm (như họ nên). Sau khi thay đổi số tiền tự động vài lần và sau đó đặt thành 0, các số khác không phải lúc nào cũng bằng 0 và đôi khi chúng dưới 0 cho tôi NaN, vì vậy nếu sau này tôi thay đổi Tự động cho một số lớn hơn 0, NaN của tôi sẽ ở NaN.
Tôi vừa nghe ai đó nói rằng các phân số trong javascript là xấp xỉ là một vấn đề khác. Tôi đã cố gắng tìm hiểu xem đây có phải là sự thật không, nhưng không thể tìm thấy bất kỳ điều gì (có thể tôi đã không tìm đúng điều khoản)
Tôi chắc chắn một số bạn đã gặp phải sự cố tương tự, bạn sẽ làm gì đề nghị? Ai đó đã đề xuất nhân số ban đầu của tôi với 100 và sau đó thực hiện tất cả các hoạt động, nhưng tôi e rằng điều này sẽ không giúp tôi thoát khỏi vấn đề mất độ chính xác.
Bất kỳ ý tưởng nào?
Tôi sẽ đánh giá cao sự trợ giúp của bạn!
Mọi số trong JS là số dấu phẩy động, nhưng bạn không nên mất quá nhiều độ chính xác trên các số 2 chỗ. Bạn sẽ cần hàng ngàn hoặc hàng triệu lần lặp trước khi FP làm tròn sẽ trở thành một vấn đề. Bạn có thể hiển thị bit liên quan của mã của bạn nơi bạn thực hiện các phép tính không? Chúng tôi không cần toàn bộ trang, chỉ một chút. –
bạn cũng có thể tạo ra lớp của riêng bạn với các thuộc tính như đô la và xu (tất cả số nguyên) và thực hiện các hoạt động của riêng bạn – spacevillain
lỗi bổ sung fp là các lỗi phổ biến nhất được báo cáo trong javascript. – jzilla