博客
关于我
JavaScript Number 对象
阅读量:218 次
发布时间:2019-02-28

本文共 1722 字,大约阅读时间需要 5 分钟。

JavaScript 数字类型

在 JavaScript 中,所有数字都统一作为 64 位浮点数(双精度浮点)来存储。这意味着无论是整数、浮点数还是指数形式的数字,都会被转换为 64 位浮点数格式。

数字在 JavaScript 中可以通过多种方式书写:

- **不使用小数点或指数形式**: - `var x = 34;` - `var y = 123;` - **使用小数点**: - `var pi = 3.14;` - `var a = 0.0001;` - **使用指数形式(科学计数法)**: - `var y = 123e5;` - `var z = 123e-5;`

需要注意的是,指数形式中的 `e` 可以与 `E` 同样使用(`e` 或 `E`),并且指数部分可以是正数或负数。例如:

- `var n = 5.23e+2;` - `var m = 4.7e-3;`

### 数字的精度

在 JavaScript 中,数字的精度受到一定限制:

- **整数**:无小数点时,最多可以表示 15 位有效数字。例如:

- `var x = 123456789012345;` - `var y = 1234567890123;`(此时会溢出到 Infinity) - **浮点数**:最多可以表示 17 位有效数字。例如:

- `var a = 0.0000000000000001;` - `var b = 123456789012345678.90;`

### 八进制和十六进制表示

在 JavaScript 中,如果数字前面有 0,则会被解释为八进制数。如果前面有 0x,则会被解释为十六进制数。需要注意的是,八进制和十六进制数在前面加 0 时会被自动转换为十进制数:

- `var n = 0377;` - 这会被解释为十进制数 377,八进制数 377 转换为十进制是 3×8² + 7×8 + 7 = 3×64 + 7×8 +7 = 192 + 56 +7 = 255。 - `var m = 0xFF;` - 这会被解释为十进制数 255(十六进制 FF 对应的十进制)。

### 注意事项

- **不要在不需要时前缀 0**:前缀 0 会让 JavaScript 假设数字是八进制或十六进制的。 - **避免混淆八进制和十进制**:如果需要明确表示十进制数,应避免使用前缀 0。 - **避免使用前缀 0x 吗?**:前缀 0x 会被解释为十六进制,但如果你不需要十六进制,可以避免使用。

### 数字的属性和方法

在 JavaScript 中,数字对象(`Number`)具有许多有用的属性和方法。以下是一些常用的属性和方法:

- **属性**: - `MAX_VALUE`:表示最大的正数值,通常为 1.7976931348623157e+308。 - `MIN_VALUE`:表示最小的正数值,通常为 5e-324。 - `NEGATIVE_INFINITY`:表示负无穷大。 - `POSITIVE_INFINITY`:表示正无穷大。 - `NaN`:表示“不是一个数”(Not a Number)。 - `prototype`:数字对象的原型。 - `constructor`:数字对象的构造函数。
  • 方法
    • toExponential():将数字转换为指数形式字符串。例如,3.14.toExponential(2) 会返回 "3.14e2"。
    • toFixed():将数字转换为固定点形式的字符串。例如,3.14.toFixed(2) 会返回 "3.14"。
    • toPrecision():将数字转换为特定精度的字符串。例如,3.1415926535.toPrecision(5) 会返回 "3.14159"。
    • toString():将数字转换为字符串形式。
    • valueOf():返回数字的数值。

### 总结

在 JavaScript 中,数字是非常灵活且强大的工具。它们可以表示为整数、浮点数或指数形式,并且可以通过多种方法进行转换和格式化。了解这些特性可以帮助开发者更高效地进行数值计算和数据处理。

转载地址:http://oxes.baihongyu.com/

你可能感兴趣的文章
OpenCV与AI深度学习 | 实战 | 基于YoloV5和Mask RCNN实现汽车表面划痕检测(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 实战 | 基于YOLOv9+SAM实现动态目标检测和分割(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 实战 | 基于YOLOv9和OpenCV实现车辆跟踪计数(步骤 + 源码)
查看>>
OpenCV与AI深度学习 | 实战 | 文本图片去水印--同时保持文本原始色彩(附源码)
查看>>
OpenCV与AI深度学习 | 实战—使用YOLOv8图像分割实现路面坑洞检测(步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 实战篇——基于YOLOv8和OpenCV实现车速检测(详细步骤 + 代码)
查看>>
OpenCV与AI深度学习 | 实战|OpenCV实时弯道检测(详细步骤+源码)
查看>>
OpenCV与AI深度学习 | 实践教程|旋转目标检测模型-TensorRT 部署(C++)
查看>>
OpenCV与AI深度学习 | 工业缺陷检测中数据标注需要注意的几个事项
查看>>
OpenCV与AI深度学习 | 干货 | 深度学习模型训练和部署的基本步骤
查看>>
OpenCV与AI深度学习 | 手把手教你用Python和OpenCV搭建一个半自动标注工具(详细步骤 + 源码)
查看>>
OpenCV与AI深度学习 | 水下检测+扩散模型:或成明年CVPR最大惊喜!
查看>>
OpenCV与AI深度学习 | 深度学习检测小目标常用方法
查看>>
OpenCV与AI深度学习 | 超越YOLOv10/11、RT-DETRv2/3!中科大D-FINE重新定义边界框回归任务
查看>>
OpenCV与AI深度学习 | 高效开源的OCR工具:Surya-OCR介绍与使用
查看>>
OpenCV与AI深度学习|16个含源码和数据集的计算机视觉实战项目(建议收藏!)
查看>>
Opencv中KNN背景分割器
查看>>
OpenCV中基于已知相机方向的透视变形
查看>>
OpenCV中的监督学习
查看>>
opencv中读写视频
查看>>