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;
};