javascript将浮点数转换成整数
Summary
临时我就想到3个方法而已。假设读者想到其它好用方法,也能够交流一下
- parseInt
- 位运算符
- Math.floor Math.ceil
Description
- 一、parseInt
- 1. 实例
-
(1).parseInt("13nash");//13 (2).parseInt("")// NaN (3).parseInt("0xA") //10(十六进制) (4).parseInt(" 13")//13 (5).parseInt("070")//ES3为56(八进制) ES5为70 (6).parseInt(070)//ES3和ES5都为56 (7).parseInt(22.5)//22 - 2. 转换规则:
- (1). 依据实例(1)得出parseInt会解析一直到非数字时停止
- (2). 依据实例(2)得出parseInt解析空字符串时为NaN。而不是0
- (3). 依据实例(3)得出parseInt能够将16进制数转换成10进制
- (4). 依据实例(4)得出parseInt忽略字符串的空格
- 3. 缺点:
- (1). 依据实例(5)我们能够知道parseInt在转换八进制数组时是不兼容的。ES3会把070看成八进制数值,可是ES5会将070看成十进制。
- (2). 依据实例(6)(7)我们能够知道parseInt在运行的时候会先把參数转变成字符串后再运行变成整数
- 4. 解释:为什么(5)(6)运行都是运行将070转换成整数,可是结果不一样呢?这个也是解决怎么得到缺点中的第二点。
由于在看官方文档中我看到了If string is not a string, then it is converted to one。这段话。
就是说參数假设不是字符串的话,它会先将它转换成字符串再转换成整数。比方实例(6)中parseInt(070)。事实上是先将070转换成字符串,你能够试下070+""或者String(070)都能够知道070会被转换成"56",由于070是一个八进制。然后就变成了parseInt("56"),最后得出来的整数就是56了。
无论你在ES3或者ES5都是为56
- 二、位操作符
- 1. 实例
-
console.log(0 | "123.45")//123 console.log(0 | 123.45)//123 console.log(0 ^ 123.45)//123 console.log(~~123.45)//123 - 2. 原理:javascript没有整数的概念。全部的数值型都是双精度浮点数。在用位运算符时,它会先把操作数转变成整数。方便操作。
而0与其它值异或或者按位或都不会改变操作值的
- 三、Math.floor与Math.ceil
- 1. 实例
-
console.log(Math.floor(2.3)//2
console.log(Math.floor(-2.3)//-3
console.log(Math.ceil(2.3)//3
console.log(Math.ceil(-2.3)//-2 - 2. 两者不足:Math.floor得到的是数字的最小整数;而Math.ceil得到的是最大整数。所以导致本来-2.3我们取整的话我们要得到的是-2。可是用Math.floor得到的是-3。而2.3用Math.ceil得到的是3。可是我们要的是2即可了。
- 3. 解决:
-
//自行定义一个函数
function getInt(val){ return val>0 ? Math.floor(val):Math.ceil(val); }
Reference
What is the best method to
convert floating point to an integer in JavaScript
parseInt MDN
Why doesn't an octal literal as a string cast to a number?
javascript将浮点数转换成整数的更多相关文章
- javascript将浮点数转换成整数的三个方法
浮点数转换成整数方法有很多,本例为大家介绍常用的三个方法,如果读者想到其他好用方法,也可以交流一下 Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseI ...
- javascript浮点数转换成整数三种方法
将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如果读者想到其他好用方法,也可以交流一下 parseInt位运算符Math.floor Math.ceil ...
- python3 使用int函数将浮点数转换成整数
int函数将浮点数转换成整数需要注意的地方 >>> int(153)153>>> int(153.4)153>>> int(153.5)153&g ...
- Swift - 浮点数转换成整数(四舍五入与直接截断)
1,直接截去小数部分转换成整数 使用强制转换会将浮点部分去除,把整数部分转换为整数. 1 var i = Int(23.50) //23 2,四舍五入转换成整数 lroundf是一个全局函数,作用是将 ...
- 将一个浮点数转换成人民币读法字符串(java)
public class Num2Rmb { private String[] hanArr = {"零" , "壹" , "贰&qu ...
- 17.把字符串转换成整数[atoi]
[题目] 把字符串转换成整数,需要考虑字符串有效性. [代码] C++ Code 123456789101112131415161718192021222324252627282930313233 ...
- Java将ip字符串转换成整数的代码
下面代码是关于Java将ip字符串转换成整数的代码,希望对各位有较大用途. public class IpUtil { public static int Ip2Int(String strIp){ ...
- 【Java】 剑指offer(67) 把字符串转换成整数
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请你写一个函数StrToInt,实现把字符串转换成整数这个功能 ...
- 《剑指offer》第六十七题(把字符串转换成整数)
// 面试题67:把字符串转换成整数 // 题目:请你写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不 // 能使用atoi或者其他类似的库函数. #include <ios ...
随机推荐
- linux下postgres未能正常启动的解决过程
转载:http://www.cnblogs.com/starRebel/p/7892214.html 起因是一次linux服务器重启后,postgres没有起来,手动找原因. 1. 直接在命令行打po ...
- 由装饰者模式来深入理解Java I/O整体框架
前言 Java里面的I/O这一部分看过很多遍,每次看完之后特别混乱,又是输入流,又是输出流,又是字符流,又是字节流,还有什么过滤流,缓冲流.每次看得我如入云里雾里,直到后面看了设计模式这一块,才算真正 ...
- Annotaion——深入理解注解类型
什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metada ...
- flask项目部署
1.安装 安装ssh 新版本安装位 apt/apt-get 老版本为 apt-get 安装以后 ifconfig查看当前的ip地址 如果网络不在同一个ip段 将网络模式设置为桥接 安装pip3 sud ...
- android中include
android中include. include标签用法. 1.新建一个xml文件,命名 head.xml head.xml文件内容如下: <?xml version="1.0&quo ...
- javascript高级程序设计第3版——第一章概括
最近发现Xmind思维导图是个好东西,刚好开始看书,被用来归纳最好不过了
- 纯CSS实现Div高度根据自适应宽度(百分百调整)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- selenium 常用操作
官方文档: https://selenium-python.readthedocs.io/api.html#selenium.webdriver.remote.webdriver.WebDriver. ...
- ui学习心得
软工课上我分配的任务是界面设计,但是对于初期一个ps从没接触的人来说我觉得还是有点困难,所以要从头学起. PS的功能是什么呢?对于业余爱好者来说,主要还是做一些简单的处理照片.绘图.设计一些皮肤等, ...
- Kruskal算法(题目还是:畅通工程)
那还是先把题目丢出来,是HDU上的一道题 畅通工程 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...