在 JavaScript 中获取数字的小数部分

获取数字的小数部分

Get the Decimal Part of a Number in JavaScript

要获取数字的小数部分:

  1. 使用该toString()方法将数字转换为字符串。
  2. 使用split()方法在点上拆分字符串。
  3. 将索引处的数组元素转换为1数字以获得小数部分。
索引.js
const num = 12.345; function getDecimalPart(num) { if (Number.isInteger(num)) { return 0; } const decimalStr = num.toString().split('.')[1]; return Number(decimalStr); } console.log(getDecimalPart(12.345)); // 👉️ 345 console.log(getDecimalPart(-1.23)); // 👉️ 23 console.log(getDecimalPart(1)); // 👉️ 0

我们创建了一个可重用的函数,它返回数字的小数部分。

我们使用
Number.isInteger
方法来判断传入的数字是否为整数。

如果数字是整数,我们0会直接返回,因为它没有小数部分。

以下是使用该Number.isInteger方法的一些示例。

索引.js
console.log(Number.isInteger(5)); // 👉️ true console.log(Number.isInteger(-5)); // 👉️ true console.log(Number.isInteger(5.0)); // 👉️ true console.log(Number.isInteger(5.5)); // 👉️ false console.log(Number.isInteger('5')); // 👉️ false
请注意,像这样的数字5.00被认为是整数,因为它与 相同,并且 JavaScript 会自动从数字中删除任何无关紧要的尾随零。 5.005
索引.js
console.log(5.00 === 5); // 👉️ true

现在我们知道数字不是整数,我们将其转换为字符串并对其调用
String.split
方法以按点拆分它。

split方法将分隔符作为参数并将字符串拆分为子字符串数组。

索引.js
console.log('1.37'.split('.')); // 👉️ ['1', '37'] console.log('-3.58'.split('.')); // 👉️ ['-3', '58']

数字的小数部分存储在数组中的索引处1但是,我们必须在从函数返回之前将其转换回数字。

JavaScript 索引是从零开始的,这意味着数组中的第一个元素的索引为0,最后一个元素的索引为. array.length -1

另一种方法是使用模运算符。

使用模 (%) 运算符获取数字的小数部分,例如
const decimal = num % 1. 当与 的除数一起使用时1,模运算符返回数字的小数部分。

索引.js
function getDecimalPart(num) { return num % 1; } console.log(getDecimalPart(3.137)); // 👉️ 0.137 console.log(getDecimalPart(1.37)); // 👉️ 0.37000000000001 console.log(getDecimalPart(5)); // 👉️ 0

我们使用
模 (%)
运算符来获取数字除以 1 的余数。

这给了我们小数点后的数字。但是,浮点数并不能精确地用二进制表示所有小数,这有时会导致结果不一致。

索引.js
console.log(0.1 + 0.2 === 0.3); // 👉️ false

0.1的总和0.2实际上等于0.30000000000000004而不是
0.3这是因为二进制浮点格式不能准确表示0.1或之类的数字0.2

代码四舍五入到最接近的数字,导致四舍五入错误。

我个人的偏好是使用第一种方法,它将点上的数字拆分并返回结果。请注意,您可能必须使用逗号分隔,具体取决于语言环境。