2011-01-27 25 views
9

Vì vậy, tôi đang cộng và trừ các số float trong javascript, và tôi cần biết cách luôn lấy trần của bất kỳ số nào có nhiều hơn 3 chữ số thập phân. Ví dụ:javascript - trần của một số đô la

3,19 = 3,19

3,191 = 3,20

3,00000001 = 3,01

Trả lời

23
num = Math.ceil(num * 100)/100; 

Mặc dù, due to the way floats are represented, bạn có thể không nhận được một số sạch đó là đến hai chữ số thập phân. Cho mục đích hiển thị, luôn làm num.toFixed(2).

+1

điều này làm việc tuyệt vời, cảm ơn bạn (nó đã thực sự trả lời câu hỏi của tôi). Nhưng. . . Tôi có lẽ sẽ đưa lời khuyên của Amnon làm tất cả mọi thứ như số nguyên – bmarti44

+0

@ bmarti44, lời khuyên của Amnon là tốt, nhưng một lời cảnh báo. Sử dụng các số nguyên sẽ không có vấn đề gì khi thực hiện phép cộng và phép nhân, nhưng không rơi vào cảm giác an toàn sai: các vấn đề tương tự sẽ nảy sinh với sự phân chia, ví dụ: '1/10 * 3'. Nhưng tất nhiên, tùy thuộc vào ứng dụng của bạn, điều này có thể không xảy ra chút nào. –

10

Thực ra tôi không nghĩ rằng bạn muốn đại diện cho số tiền là số dư, do cùng một lý do được trích dẫn bởi Box9. Ví dụ: 0,1 * 3! = 0,3 trong trình duyệt của tôi. Tốt hơn là đại diện cho chúng dưới dạng số nguyên (ví dụ: xu).

+0

Tôi tin rằng bạn có quyền chuyển các giá trị phao sang số nguyên, vì vậy tôi sẽ lấy lời khuyên của bạn. Cảm ơn bạn đã trả lời nhanh chóng. – bmarti44

Các vấn đề liên quan