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 ...
随机推荐
- while循环和递归
这个问题是在数据结构的二叉树添加结点的时候碰见 添加新结点的时候可以用while循环自身解决(这里这个方式更好) 也可以用递归解决 递归就像小明去楼顶取东西 ,从一楼开始爬,看,不是的,继续爬,每层 ...
- xss攻击(转)
什么是 XSS Cross-Site Scripting(跨站脚本攻击)简称 XSS,是一种代码注入攻击.攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行.利用这些恶意脚本,攻击者可获取用 ...
- Ruby on Rails Tutorial 第一章笔记
搭建开发环境 作者介绍了 Cloud9\ Coding.net 这样的云端开发环境 安装 Rails 1. 新建 rails 应用 首先,调用 rails new 命令创建一个新的 Rails 应用, ...
- ONOS架构-系统组件
系统组件 系统分层 App/core/providers 业务和子系统 一个业务service是有多个组件构成的功能单元,基于各层软件栈提供一个垂直的分片slice,将构成业务service的组件集合 ...
- gunicorn flask nginx环境配置
防火墙端口设置****修改后要重启生效(有时在控制面板中设置80端口无法生效) /etc/init.d/iptables statusservice iptables stopfirewall-cmd ...
- conda基本操作
准备环境 # 下载并安装conda基础环境 $ wget https://mirror.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.3.1 ...
- IIS+NGINX 负载web服务器
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在 ...
- 在Visual Studio 2017中安装bower
在项目目录下添加一个文件.bowerrc { "directory": "wwwroot/lib" } JS包默认安装到webroot的lib文件夹,可以通过. ...
- Linux下maven安装
1.下载maven的tar.gz格式文件到/opt文件夹下 2.解压mavenmaven压缩包 tar -xvzf maven.tar.gz -C /usr/local 3.配置maven的环境变量 ...
- 查看selinux与关闭方法
查看当前用户selinux 状态 [root@o- ~]# getenforce Disabled [root@o- ~]# setenforce usage: setenforce [ Enforc ...