Hướng dẫn how do you round a number to one decimal place in javascript? - làm thế nào để bạn làm tròn một số đến một chữ số thập phân trong javascript?

Nói chung, làm tròn thập phân được thực hiện bằng cách mở rộng: round(num * p) / p

Show

Thực hiện ngây thơ

Sử dụng hàm sau với số nửa chừng, bạn sẽ nhận được giá trị tròn trên như mong đợi hoặc giá trị tròn dưới đôi khi tùy thuộc vào đầu vào.

inconsistency trong vòng này có thể giới thiệu khó phát hiện lỗi trong mã máy khách.

function naiveRound(num, decimalPlaces) {
    var p = Math.pow(10, decimalPlaces);
    return Math.round(num * p) / p;
}

console.log( naiveRound(1.245, 2) );  // 1.25 correct (rounded as expected)
console.log( naiveRound(1.255, 2) );  // 1.25 incorrect (should be 1.26)

Triển khai tốt hơn

Bằng cách chuyển đổi số thành một chuỗi trong ký hiệu theo cấp số nhân, các số dương được làm tròn như mong đợi. Nhưng, hãy lưu ý rằng các số âm tròn khác với số dương.exponential notation, positive numbers are rounded as expected. But, be aware that negative numbers round differently than positive numbers.

Trên thực tế, nó thực hiện những gì về cơ bản tương đương với "một nửa tròn" như quy tắc, bạn sẽ thấy rằng

/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
0 đánh giá thành
/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
1 mặc dù
/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
2 đánh giá thành
/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
3. Phương pháp lodash _.Round sử dụng kỹ thuật này.

/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01

Nếu bạn muốn hành vi thông thường khi làm tròn các số âm, bạn sẽ cần chuyển đổi số âm thành dương trước khi gọi math.Round (), sau đó chuyển đổi chúng trở lại số âm trước khi quay lại.

// Round half away from zero
function round(num, decimalPlaces) {
    num = Math.round(Math.abs(num) + "e" + decimalPlaces) * Math.sign(num);
    return Number(num + "e" + -decimalPlaces);
}

Có một kỹ thuật toán học thuần túy khác nhau để thực hiện vòng tròn đến gần nhất (sử dụng "một nửa vòng so với số không"), trong đó hiệu chỉnh Epsilon được áp dụng trước khi gọi hàm làm tròn.epsilon correction is applied before calling the rounding function.

Đơn giản, chúng tôi thêm giá trị float nhỏ nhất có thể (= 1.0 ULP; đơn vị ở vị trí cuối cùng) vào số trước khi làm tròn. Điều này chuyển sang giá trị đại diện tiếp theo sau số, cách xa số không.

/**
 * Round half away from zero ('commercial' rounding)
 * Uses correction to offset floating-point inaccuracies.
 * Works symmetrically for positive and negative numbers.
 */
function round(num, decimalPlaces) {
    var p = Math.pow(10, decimalPlaces);
    var e = Number.EPSILON * num * p;
    return Math.round((num * p) + e) / p;
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // -1

// testing edge cases
console.log( round(1.005, 2) );  // 1.01
console.log( round(2.175, 2) );  // 2.18
console.log( round(5.015, 2) );  // 5.02

console.log( round(-1.005, 2) ); // -1.01
console.log( round(-2.175, 2) ); // -2.18
console.log( round(-5.015, 2) ); // -5.02

Điều này là cần thiết để bù đắp lỗi-tắt hoàn toàn có thể xảy ra trong quá trình mã hóa các số thập phân, đặc biệt là các số có "5" ở vị trí thập phân cuối cùng, như 1,005, 2.675 và 16.235. Trên thực tế,

/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
4 trong hệ thống thập phân được mã hóa thành
/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
5 trong phao nhị phân 64 bit; trong khi,
/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
6 trong hệ thống thập phân được mã hóa thành
/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
7 trong phao nhị phân 64 bit.

Điều đáng chú ý là nhị phân tối đa

/**
 * Round half up ('round half towards positive infinity')
 * Uses exponential notation to avoid floating-point issues.
 * Negative numbers round differently than positive numbers.
 */
function round(num, decimalPlaces) {
    num = Math.round(num + "e" + decimalPlaces);
    return Number(num + "e" + -decimalPlaces);
}

// test rounding of half
console.log( round(0.5, 0) );  // 1
console.log( round(-0.5, 0) ); // 0

// testing edge cases
console.log( round(1.005, 2) );   // 1.01
console.log( round(2.175, 2) );   // 2.18
console.log( round(5.015, 2) );   // 5.02

console.log( round(-1.005, 2) );  // -1
console.log( round(-2.175, 2) );  // -2.17
console.log( round(-5.015, 2) );  // -5.01
8 phụ thuộc vào (1) độ lớn của số và (2) epsilon máy tương đối (2^-52).


Làm cách nào để định dạng một số là thập phân để lưu trữ nó trong mysql?round a number to a one decimal place in JavaScript. There are various needs to round the float numbers and show particular digits after the decimal point.

Làm thế nào để bạn làm tròn một số trong JavaScript?

Hàm toán học () luôn làm tròn và trả về số nguyên nhỏ hơn hoặc bằng một số nhất định.

Hơn nữa, chúng tôi có các phương pháp khác nhau để đạt được mục tiêu của mình trong hướng dẫn này.

  • Sử dụng phương thức tofixed ()

  • Sử dụng hàm Math.Round ()

Sử dụng phương thức tofixed ()

Sử dụng hàm Math.Round ()toFixed() method. It takes a single parameter; the number of digits you want to keep after the decimal point. Also, the toFixed() method “returns the string output” even if you add a number input. We need to convert the string output to float.

Theo cách tiếp cận này, chúng tôi sẽ làm tròn một vị trí số đến 1 thập phân bằng phương thức tofixed (). Nó có một tham số duy nhất; Số chữ số bạn muốn giữ sau điểm thập phân. Ngoài ra, phương thức tofixed () đã trả về đầu ra chuỗi ngay cả khi bạn thêm một số đầu vào. Chúng ta cần chuyển đổi đầu ra chuỗi thành float.

Cú pháp

number.toFixed(decimal_digits);

Người dùng có thể làm theo cú pháp dưới đây để sử dụng phương thức tofixed ().

  • Thông số − This parameter takes the number input which represent the number of digits you want to keep after decimal point. In our case, we will take 1 as this parameter.

decimal_digits - tham số này lấy số đầu vào số đại diện cho số chữ số bạn muốn giữ sau dấu thập phân. Trong trường hợp của chúng tôi, chúng tôi sẽ lấy 1 làm tham số này.

Thí dụ



   
   

Round a number to 1 decimal place in JavaScript

   

After rounding the 103.72456 to 1 decimal place, output is

   

   

   

   

Ví dụ dưới đây cho thấy cách sử dụng phương thức tofixed () cho các số tròn đến 1 thập phân. Như đã thảo luận ở trên, phương thức tofixed () trả về một chuỗi để chúng tôi sẽ chuyển đổi giá trị chuỗi được trả về thành float một lần nữa.toFixed() method is a string. After that, we have converted output to float using the parseFloat() function.

Sử dụng hàm Math.Round ()

Theo cách tiếp cận này, chúng tôi sẽ làm tròn một vị trí số đến 1 thập phân bằng phương thức tofixed (). Nó có một tham số duy nhất; Số chữ số bạn muốn giữ sau điểm thập phân. Ngoài ra, phương thức tofixed () đã trả về đầu ra chuỗi ngay cả khi bạn thêm một số đầu vào. Chúng ta cần chuyển đổi đầu ra chuỗi thành float.Math.round() function from the JavaScript math library in this approach. The Math.round() function round off the number to its nearest number, but we will apply some precious logic to round of number to a single digit only.

Cú pháp

Người dùng có thể làm theo cú pháp dưới đây để sử dụng phương thức tofixed ().

Theo cách tiếp cận này, chúng tôi sẽ làm tròn một vị trí số đến 1 thập phân bằng phương thức tofixed (). Nó có một tham số duy nhất; Số chữ số bạn muốn giữ sau điểm thập phân. Ngoài ra, phương thức tofixed () đã trả về đầu ra chuỗi ngay cả khi bạn thêm một số đầu vào. Chúng ta cần chuyển đổi đầu ra chuỗi thành float.

let result = Math.round(number*10)/10;

decimal_digits - tham số này lấy số đầu vào số đại diện cho số chữ số bạn muốn giữ sau dấu thập phân. Trong trường hợp của chúng tôi, chúng tôi sẽ lấy 1 làm tham số này.

Thí dụ



   
   

Round a number to 1 decimal place in JavaScript

   

Result after rounding the 81.43426 to 1 decimal place using the Math.Round() method −

   

   

Ví dụ dưới đây cho thấy cách sử dụng phương thức tofixed () cho các số tròn đến 1 thập phân. Như đã thảo luận ở trên, phương thức tofixed () trả về một chuỗi để chúng tôi sẽ chuyển đổi giá trị chuỗi được trả về thành float một lần nữa.

Trong đầu ra ở trên, người dùng có thể thấy loại đầu ra đó sau khi làm tròn số thành 1 thập phân bằng phương thức tofixed () là một chuỗi. Sau đó, chúng tôi đã chuyển đổi đầu ra thành float bằng hàm parsefloat ().

Chúng tôi sẽ sử dụng hàm Math.Round () từ thư viện JavaScript Math theo cách tiếp cận này. Hàm math.Round () làm tròn số đến số gần nhất, nhưng chúng tôi sẽ áp dụng một số logic quý giá cho vòng số chỉ vào một chữ số.

Chúng ta có thể nhân số với 10 và áp dụng hàm vòng (). Sau đó, chúng ta có thể chia số tròn cho 10 lần nữa, vì vậy chúng ta có thể đạt được mục tiêu của mình.

Hướng dẫn how do you round a number to one decimal place in javascript? - làm thế nào để bạn làm tròn một số đến một chữ số thập phân trong javascript?

Người dùng có thể hiểu phương pháp trên bằng cách sử dụng ví dụ này. Ví dụ: chúng tôi muốn làm tròn một số 10.34532 đến 1 chữ số thập phân. Hãy để số lượng số lượng với 10 và nó chuyển sang 103.4532. Bây giờ, nếu chúng ta áp dụng chức năng tròn, chúng ta chỉ nhận được kết quả 103. Tiếp theo, chia số cho 10, số chuyển thành 10.3 và chúng tôi nhận được kết quả chính xác.

  • Trong ví dụ dưới đây, chúng tôi đã tạo một chức năng làm tròn để người dùng có thể tùy chỉnh nó theo nhu cầu của họ. Chức năng của chúng tôi mất 2 tham số, một là số bạn muốn làm tròn và một số khác là số chữ số bạn muốn giữ sau các điểm thập phân.
  • Trong ví dụ trên, chúng tôi đã vượt qua 1 như là một giá trị của tham số Decimal_Digit. Vì vậy, chúng tôi sẽ nhận được 101 = 10 và Math.Round () Chức năng vòng số đến 1 thập phân.
  • Nếu người dùng muốn làm tròn các số đến n decimal Place, họ sẽ vượt qua giá trị decimal_digit và như một sức mạnh của 10, họ sẽ nhận được 10n và math.round () chức năng làm tròn một số đến n vị trí thập phân.
  • Sự kết luận
  • Trong hướng dẫn này, chúng tôi đã sử dụng hai cách tiếp cận với số tròn đến một vị trí thập phân duy nhất. Cách tiếp cận đầu tiên không tốt vì nó trả về chuỗi và bạn cần chuyển đổi nó thành float một lần nữa. Cách tiếp cận thứ hai có lợi vì nó có thể tùy chỉnh mặc dù nó sẽ hoạt động làm tròn các con số đến các vị trí thập phân.
  • Cập nhật vào ngày 14-tháng 1-2022 11:51:13
  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào tôi có thể làm tròn một số trong JavaScript?
  • Làm cách nào để loại bỏ phần thập phân của số javascript?
  • Làm thế nào để làm tròn số thập phân đến thứ mười gần nhất trong JavaScript?
  • Làm thế nào để làm tròn một số vào các vị trí thập phân trong java
  • Tôi muốn làm tròn một số đến 2 số thập phân trong sapui5. Bất cứ ai có thể giúp đỡ?
  • Chương trình Java để làm tròn một số đến n số thập phân
  • Làm thế nào để làm tròn một số trong JavaScript?
  • Làm thế nào để sử dụng JavaScript để kiểm tra xem một số có vị trí thập phân hay nó là một số toàn bộ?
  • Làm thế nào tôi có thể đặt một bảng trên một lô trong matplotlib?

Làm thế nào để bạn làm tròn một số trong JavaScript?

Hàm toán học () luôn làm tròn và trả về số nguyên nhỏ hơn hoặc bằng một số nhất định.Math.ceil() function always rounds up and returns the smaller integer greater than or equal to a given number.

Làm cách nào để giới hạn số lượng vị trí thập phân trong JavaScript?

Để hạn chế các vị trí thập phân trong javascript, hãy sử dụng phương thức tofixed () bằng cách chỉ định số lượng số thập phân.use the toFixed() method by specifying the number of decimal places.

Làm thế nào để bạn làm tròn đến 2 chữ số thập phân trong JavaScript?

Sử dụng phương thức tofixed () để làm tròn một số đến 2 số thập phân, ví dụ:const result = num.tofixed (2).Phương pháp tofixed sẽ làm tròn và định dạng số đến 2 thập phân. to round a number to 2 decimal places, e.g. const result = num. toFixed(2) . The toFixed method will round and format the number to 2 decimal places.