📅  最后修改于: 2023-12-03 15:31:45.008000             🧑  作者: Mango
在 JavaScript 中,数字可以被存储为整数或浮点数。然而,在某些情况下,人们可能会注意到,存储为浮点数时,JavaScript 出现了奇怪的行为,例如:
console.log(0.1 + 0.2); // 0.30000000000000004
这是因为 JavaScript 使用 IEEE 754 标准来存储浮点数,而这种标准有时会导致舍入误差。因此,在某些情况下,这可能会导致一些意外的行为。
在 JavaScript 中没有专门的 “小数” 类型。 相反,JavaScript 提供了一个单一的 "number" 类型,它可以存储整数、浮点数、负数和正数,所有这些数字都被表示为 64 位双精度浮点数。
由于 JavaScript 没有小数,所以它也没有整数。在 JavaScript 中,所有的数字都被表示为同一种类型的数字。这可能会导致一些意想不到的行为,例如:
console.log(10 / 0); // Infinity
console.log(-10 / 0); // -Infinity
console.log(NaN === NaN); // false
在上面的示例中,10 除以 0 是 Infinity,-10 除以 0 是 -Infinity。NaN 表示非数字,NaN 不等于任何数字,甚至不等于本身。
在 JavaScript 中,由于这种限制,人们经常使用其他工具来处理小数,例如 Decimal.js 和 big.js。
总之,JavaScript 没有小数位,所以在处理小数时需要注意舍入误差和运算符的行为,以避免产生意想不到的结果。