Tôi đang cố gắng làm tròn các giá trị trong mảng của tôi đến 2 dấu thập phân. Tôi hiểu tôi có thể sử dụng math.round nhưng sẽ làm việc cho một mảng toàn bộ? Hoặc tôi sẽ cần phải viết một hàm để làm tròn từng giá trị riêng lẻ.Cách làm tròn tất cả các giá trị trong một mảng thành 2 dấu thập phân
Trả lời
Loops!
var x = 0;
var len = my_array.length
while(x < len){
my_array[x] = my_array[x].toFixed(2);
x++
}
Và, có, một vòng lặp while nhanh hơn tại đây.
Chúc mừng cho điều đó. Điều đó đã làm công việc. Tôi đã tự hỏi, tại sao một vòng lặp while nhanh hơn ở đây? Tôi ngồi bên cạnh một thiên tài logic máy tính, những người kiên quyết rằng vòng lặp for sẽ nhanh hơn? –
Tôi đã có một chút hỗn hợp, bạn nên được tốt hơn off với loại bỏ 'x' và làm' trong khi (len -) {my_array [len] = my_array [len] .toFixed (2);} 'Phương pháp trong của tôi câu trả lời chậm hơn 1ms so với cách nhận xét này ... xem: https://blogs.oracle.com/greimer/entry/best_way_to_code_a – tkone
Mặc dù vòng lặp 'while' vẫn nhanh hơn vòng lặp' for'. Nhưng như Knuth đã nói ... "Chúng ta nên quên đi những hiệu quả nhỏ, nói khoảng 97% thời gian: tối ưu hóa sớm là gốc rễ của mọi điều ác" – tkone
Bạn phải lặp qua mảng. Sau đó, đối với mỗi phần tử:
- Nếu bạn muốn chính xác hai chữ số sau dấu phẩy, hãy sử dụng phương thức
<number>.toFixed(2)
. - Nếu không, hãy sử dụng
Math.round(<number>*100)/100
.
So sánh cả hai phương pháp:
Input .toFixed(2) Math.round(Input*100)/100
1.00 "1.00" 1
1.0 "1.00" 1
1 "1.00" 1
0 "0.00" 0
0.1 "0.10" 0.1
0.01 "0.01" 0.01
0.001 "0.00" 0
Đây là thời điểm tuyệt vời để sử dụng bản đồ.
// first, let's create a sample array
var sampleArray= [50.2334562, 19.126765, 34.0116677];
// now use map on an inline function expression to replace each element
// we'll convert each element to a string with toFixed()
// and then back to a number with Number()
sampleArray = sampleArray.map(function(each_element){
return Number(each_element.toFixed(2));
});
// and finally, we will print our new array to the console
console.log(sampleArray);
// output:
[50.23, 19.13, 34.01]
Rất dễ dàng! ;)
Công việc tốt này là những gì tôi đang tìm kiếm. –
- 1. Giá trị thập phân tròn trong C#
- 2. iOS Objective-C Làm thế nào để có được 2 giá trị phẩy tròn thập phân?
- 3. PHP: đặt tất cả các giá trị trong một mảng thành một cái gì đó
- 4. giá trị thập phân tròn tối đa là 0,01?
- 5. Trong C#, làm cách nào để nhận được số giá trị dấu thập phân bắt buộc mà không làm tròn?
- 6. Làm tròn xuống 2 chữ số thập phân trong C#
- 7. Làm tròn số thập phân trong Django
- 8. Chuyển đổi enums đến mảng các giá trị (Đưa tất cả các giá trị trong một mảng JSON)
- 9. Biểu thức LINQ để đặt tất cả các giá trị của một mảng thành một giá trị đã cho
- 10. Làm tròn số thập phân của Excel?
- 11. Làm tròn đến 2 chữ số thập phân
- 12. Làm tròn phần thập phân trong ios
- 13. Tạo một vector số 100 với các giá trị ngẫu nhiên trong R được làm tròn thành 2 số thập phân
- 14. Làm cách nào để chuyển đổi giá trị Integer thành giá trị thập phân?
- 15. Chuyển đổi thập phân tròn thành giá trị căn bản (gần đúng)?
- 16. PHP Lấy giá trị đầu tiên của tất cả các mảng trong một mảng đa chiều
- 17. Đếm tất cả các giá trị trong một ma trận lớn hơn một giá trị
- 18. làm tròn điểm thập phân
- 19. Làm cách nào để làm tròn số thập phân xuống 2 chữ số thập phân trong .Net?
- 20. Làm thế nào để làm cho gdb in ra tất cả các giá trị trong chế độ thập lục phân?
- 21. Làm tròn số thành số thập phân trong clojure
- 22. Cách in tất cả các giá trị của một mảng trong Perl
- 23. cách chuyển đổi giá trị màu RGB thành giá trị thập lục phân trong C++?
- 24. Sắp xếp mảng đa chiều theo giá trị thập phân
- 25. Làm cách nào để bạn đặt giá trị của một mảng thành các giá trị của mảng khác trong Java?
- 26. tính toán phao php 2 dấu thập phân
- 27. Làm tròn số thập phân của Python
- 28. Bắt tất cả các giá trị của một mảng của Strings trong một chuỗi
- 29. Làm cách nào để làm tròn đến 2 chữ số thập phân?
- 30. Thu thập các giá trị cột vào một mảng
Nếu bạn muốn hai dấu thập phân cho mỗi phần tử trong mảng, bạn có thể gọi phương thức Math.Round cho phần tử eacch hoặc bạn đang tìm kiếm một cái gì đó khác –