Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Đếm số chữ số sau dấu phẩy của số thực trong JavaScript

Mô tả bài toán

Viết hàm trả về số chữ số phần thập phân của một số. Trả về 0 nếu là số nguyên.

Ví dụ minh họa

const num1 = 1.123456789;
const num2 = 123456789;

const decimalCount = num => {
  const numStr = String(num);
  if (numStr.includes('.')) {
    return numStr.split('.')[1].length;
  }
  return 0;
};

console.log(decimalCount(num1)); // 9
console.log(decimalCount(num2)); // 0

Kết quả

9 0

Lưu ý quan trọng

Cách này dựa trên biểu diễn chuỗi, có thể sai với số khoa học (1e-5) hoặc làm tròn float (0.1 + 0.2 = 0.30000000000000004).

Cách mạnh mẽ hơn

const decimalCount = num => {
  const str = num.toString();
  const exp = str.indexOf('e-');
  if (exp > -1) return +str.slice(exp + 2);
  const dot = str.indexOf('.');
  return dot > -1 ? str.length - dot - 1 : 0;
};