Tôi không biết nếu tôi là thiếu một cái gì đó rõ ràng ở đây nhưng ...Firefox và Javascript Quy định làm tròn
Trong IE, Opera và Chrome, tôi nhận được những gì tôi mong đợi từ con số làm tròn kết thúc bằng một 5:
125 toPrecision(2) => 130
11.5 toPrecision(2) => 12
Đây là những gì tôi mong đợi.
Firefox, tuy nhiên, là một chút nhiều hơn 'phức tạp' năng suất như sau:
125 toPrecision(2) => 120 //wtf!!!
11.5 toPrecision(2) => 12
Sau một chút đầu gãi, tôi đã đi đến kết luận rằng Firefox đang sử dụng một 'làm tròn thậm chí' quy tắc ở đâu, nếu chữ số trước 5 thậm chí còn số làm tròn xuống và nếu chữ số trước 5 là số lẻ số lượng đạn lên:
0.5 => 0
1.5 => 2
2.5 => 2
3.5 => 4, etc.
tôi đang sử dụng các kết quả được làm tròn để thử nghiệm các giải pháp sinh lời các câu hỏi kỹ thuật với giả đầu vào câu hỏi được tạo ngẫu nhiên. Đầu vào câu hỏi trong Chrome có thể là h = 1020 mm nhưng h = 1030 mm trong FF, Chrome hoặc Opera.
Tôi cần một hàm để làm tròn nhất quán, nghĩa là tôi muốn 0,00để làm tròn lên đến 0.000124 và tôi muốn 1234 tròn thành 1240 vì vậy tôi không thể sử dụng num = Math.floor (num + 0.5) đơn giản; Để làm phức tạp vấn đề một chút, tôi muốn biến đầu vào và sinh câu trả lời là đúng đến 3 khai quật sig trừ chữ số đầu tiên là 1, trong trường hợp mà tôi muốn 4 sig khai quật:
234.5 => 235
134.5 => 134.5
tôi đã bị hack một giải pháp cho 3 hoặc 4 sig digs tùy thuộc vào chữ số đầu tiên bằng cách chuyển đổi số thành một chuỗi và kiểm tra đầu tiên khác không, không dấu thập phân và ký tự không âm cho '1' - không đẹp, nhưng nó hoạt động. Tôi có thể làm một cái gì đó tương tự cho vấn đề làm tròn, kiểm tra xem chữ số để được làm tròn là một 5 nhưng tôi tự hỏi nếu có một giải pháp bit-khôn ngoan.
"Tôi muốn 1234 đến 1240"? –