当前位置:主页 > 查看内容

js中parseInt()的诡异行为

发布时间:2021-10-12 00:00| 位朋友查看

简介:parseInt0.0000006居然等于6 parseInt函数的作用 探究原因 总结原因 改正 探讨背景不知道小伙伴们有没有发现如果是parseInt0.006或者parseInt(0.0006)等返回的值都应该 0 但是parseInt0.0000006返回的值却诡异的 6 这到底为什么呢 parseInt函数的作用 首先先……

parseInt(0.0000006)居然等于6


探讨背景:不知道小伙伴们有没有发现,如果是parseInt(0.006)或者parseInt(0.0006)等返回的值都应该 0,但是parseInt(0.0000006)返回的值却诡异的 6,这到底为什么呢?

parseInt函数的作用

首先先说一下,parseInt()的作用是什么?他是js原生的方法,是用来把数字字符串转化为Number类型的数字的,还有他只是转化整数部分。

探究原因

发现我们理想的是把这个小数都变成0,但是parseInt(0.0000006)却返回6,真是离谱呀。

console.log(parseInt(0.006)) //0
console.log(parseInt(0.0006)) //0
console.log(parseInt(0.00006)) //0
console.log(parseInt(0.000006)) //0
console.log(parseInt(0.0000006)) //6

返回我就开始探索他的原因,是哪里出现了问题。

parseInt(0.0000006)  //0.000006
String(0.0000006);  //6e-7
parseInt(6e-7);  //6
parseInt(0.0000006)  //6

总结原因

这下我发现原因了,原来是因为在10的-6次方之后,形式就换成了复数的形式(6e-7)。然后用parseInt()把6e-7的6,进行了返回,所以最后返回的值是6。

改正

如果要把小数安全的返回回来,就要用别的方法啦!

Math.floor(0.00006);  //0
Math.floor(0.000006);  //0
Math.floor(0.0000006);  //0

这样就可以得到你想要的值了。我会不定时的发一些,我学习中遇到的坑还有一些小知识点的,如果喜欢的话,记得关注我一下!

;原文链接:https://blog.csdn.net/iloveyu123/article/details/116124465
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:JavaScript类型检测 下一篇:没有了

推荐图文


随机推荐