parseInt(0.0000005)大于等于5

2023-12-23 13:36

本文主要是介绍parseInt(0.0000005)大于等于5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一、前言
  • 二、`parseInt()`的神秘行为
  • 三、解决`parseInt()`的奥秘
  • 四、结论
  • 五、最后

一、前言

parseInt()JavaScript 的内置函数,用于解析数字字符串中的整数。例如,从数字字符串中解析整数100

const number = parseInt('100');
number; // 100

如预期的那样,'100' 将被解析为 100

parseInt(numericalString, radix) 还接受第二个参数 radixradix2-36之间的整数,表示被解析字符串的基数,最常见的是2、8、10 和 16,默认为 10,也就是十进制。

让我们使用parseInt()解析基数2中的数字字符串:

const number = parseInt('100', 2);
number; // 4

parseInt('100', 2) 解析'100' 为以 2 为基数的整数:因此,它返回值4(十进制)。

二、parseInt()的神秘行为

parseInt(numericalString) 的第一个参数如果不是字符串,将执行 toString 操作将其转换为字符串,然后再将该字符串解析为整数值。

parseInt(0.5);      // => 0
parseInt(0.05);     // => 0
parseInt(0.005);    // => 0
parseInt(0.0005);   // => 0
parseInt(0.00005);  // => 0
parseInt(0.000005); // => 0

提取 float 之类的整数部分,例如 0.50.05 结果为0,这将按照我们预期的工作。

但提取 0.0000005 的整数部分呢?

parseInt(0.0000005); // => 5

parseInt()float 解析 0.0000005… 5,有趣而又让人意外…

为什么 parseInt(0.0000005) 会有这样的神秘行为?

三、解决parseInt()的奥秘

让我们再次看一下 parseInt(numericalString) 第一个参数的作用:如果它不是字符串,则将其转换为字符串,然后进行解析,并返回解析后的整数。

然后让我们尝试将浮点数手动转换为字符串表示形式:

String(0.5);      // => '0.5'
String(0.05);     // => '0.05'
String(0.005);    // => '0.05'
String(0.0005);   // => '0.005' 
String(0.00005);  // => '0.00005'
String(0.000005); // => '0.000005'String(0.0000005); // => '5e-7'

显式转换为字符串的String(0.0000005)行为与其他浮点数不同:它是指数表示法的字符串表示形式!

第二个线索,当采用指数表示法解析为整数时,您将得到数字5

parseInt(0.0000005); // => 5
// 类似于
parseInt(5e-7);      // => 5
// 类似于
parseInt('5e-7');    // => 5

parseInt('5e-7')考虑到第一个数字5,但跳过e-7

因为parseInt()总是将其第一个参数转换为字符串,所以小于10 -6的浮点数将以指数表示法编写。然后parseInt()float的指数表示法中提取整数!

附带说明一下,为了安全地提取浮点数的整数部分,建议使用以下Math.floor()函数:

Math.floor(0.5);      // => 0
Math.floor(0.05);     // => 0
Math.floor(0.005);    // => 0
Math.floor(0.0005);   // => 0
Math.floor(0.00005);  // => 0
Math.floor(0.000005); // => 0Math.floor(0.0000005); // => 0

四、结论

parseInt() 是将数字字符串解析为整数的函数,尝试提取浮点数的整数部分时必须小心使用 parseInt(),防止出现意想不到的结果。

五、最后

本人每篇文章都是一字一句码出来,希望对大家有所帮助,多提提意见。顺手来个三连击,点赞👍收藏💖关注✨,一起加油☕

这篇关于parseInt(0.0000005)大于等于5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/528224

相关文章

18053 大于平均分

### 思路 1. 输入10个整数并存储在数组中。 2. 计算这10个整数的总和。 3. 计算平均值。 4. 统计有多少个数比平均值大。 5. 输出统计结果。 ### 伪代码 1. 初始化一个数组 `arr` 用于存储10个整数。 2. 初始化变量 `sum` 为0,用于存储总和。 3. 初始化变量 `count` 为0,用于统计比平均值大的数的个数。 4. 循环读取10个整数并存储在数组

二叉树的遍历(篇4)判断从根到叶节点的和是否等于某个给定的值

给定二叉树和一个数sum,如果从树的根开始到叶节点的值等于sum,则返回true。 如果没有找到这样的路径,则返回false。 例如, 在上述树根到叶节点存在具有以下和。 21 - > 10 - 8 - 3 23 - > 10 - 8 - 5 14 - > 10 - 2 - 2 因此,返回的值应该只对数字21,23和14. true。对于任何其他数字,返回值应该为false。 算

js 判断是否等于0不要用!

var a = $('#a').val(); // a等于0// 不要用!a,这个可能等于false,因为a可能被认为是字符串if(!a){}// 可以用if(a == 0){}

1秒等于1000毫秒, 1毫秒等于1000微秒,1微秒等于1000纳秒

常用时间单位转换指南 在计算机科学、物理学以及其他领域中,我们经常需要处理不同量级的时间单位。了解这些单位之间的转换关系,可以帮助我们更准确地进行计算和分析。下面是一些常用的时间单位及其相互之间的转换。 时间单位概述 秒(Second, s):基本时间单位,定义为铯-133原子基态的两个超精细能级间跃迁对应辐射的9,192,631,770个周期的持续时间。毫秒(Millisecond, ms

数据结构-非线性结构-树形结构:有序树 ->二叉树 -> 平衡二叉树(任何节点的左右子树的高度差不大于1)-> 完全二叉树(除最底层外的其他层都被填满,且最底层左到右填入) -> 堆(优先队列)

完全二叉树:即除了最底层,其他层的节点都被元素填满,且最底层左到右填入。 完全二叉树属于平衡二叉树。 堆是一种完全二叉树,且满足以下条件: 最大堆:每个节点都比其子树所有节点大的完全二叉树;最小堆:每个节点都比其子树所有节点小的完全二叉树; 我们对堆中的结点按层进行编号,可以将堆逻辑结构映射到数组中 大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i

最大值最小值小于等于K的最长长度

使用一个set进行维护中间的数字,然后滑窗

【Leetcode 2283 】 判断一个数的数字计数是否等于数位的值—— 数组计数

给你一个下标从 0 开始长度为 n 的字符串 num ,它只包含数字。 如果对于 每个 0 <= i < n 的下标 i ,都满足数位 i 在 num 中出现了 num[i]次,那么请你返回 true ,否则返回 false 。 示例 1: 输入:num = "1210"输出:true解释:num[0] = '1' 。数字 0 在 num 中出现了一次。num[1] = '2' 。数

从数据集中挑选红色区域大于某一阈值的图片

算法训练时需要对图片进行过滤,改脚本用来从数据集中挑选中图片中红色区域大于某一阈值的图片。 #!usr/bin/env python#-*- coding:utf-8 _*-import osimport shutilimport numpy as npimport cv2lower_red = np.array([0, 127, 128]) # 红色阈值下界higher_red =

微信大于1G文件转输不了的解决方案

前言:今天要传输大文件 大于1GB 微信传输不了,提示大于1G 想到了使用网盘传输,结果显示需要15小时下载时间, 于是选择在线下载,没想到各种套路和广告,把卸载很久的QQ又重新安装上了,结果显示版本太低了,重新安装的最新片,发现密码不记得了,经过好几次尝试终于成功了。 使用工具:QQ最新版 文件离线上传 方法:通过QQ离线上传功能将大于1G的文件上传到QQ,然后通过另一个QQ号登录到其它电脑