Number(),parseInt(),parseFloat(),Math.round(),Math.floor(),Math.ceil()对比横评

时间:2021-08-19 19:41:02

首先,这些处理方法可分为三类。

1,只用来处理数字取整问题的:Math.round(),Math.floor(),Math.ceil();

2,专门用于把字符串转化成数值:parseInt(),parseFloat();

3,  没有什么卵用的:Number()

下面看看他们各自的用法和区别,逐个分类说。

一,parseInt()

parseInt()函数可以将字符串转换成一个整数,parseInt()函数不仅可以解析纯数字字符串,也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。也可以对纯数字作处理,不过意义不大,作用是返回舍去参数的小数部分后的整数。

(1)如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN; 也就是说,用parseInt()转换空字符串会返回NaN。 
(2)如果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了一个非数字字符。 
(3)如果字符串以”0x”开头且后跟数字字符,就会将其当作一个十六进制整数。 
(4)如果字符串以”0”开头且后跟数字字符,就会将其当作一个八进制整数。 
(5)parseInt()函数增加了第二参数用于指定转换时使用的基数(即多少进制)。 
(6)当parseInt()函数所解析的是浮点数字符串时,取整操作所使用的方法为“向下取整”。

(7)当其解析一个纯数字时,返回直接去掉小数点后部分的整数。

var num1=parseInt("num123");    //NaN
var num2=parseInt(""); //NaN
var num3=parseInt("123.45") //123
var num4=parseInt("101010",2) //42
var num5=parseInt("123num") //123
var num6=parseInt("0xff") //255
var num7=parseInt(8.4) //8

二,parseFloat()

与parseInt()一样,parseFloat()也可以解析以数字开头的部分数字字符串(非数字部分字符串在转换过程中会被去除)。与parseInt()不同的是,parseFloat()可以将字符串转换成浮点数;但同时,parseFloat()只接受一个参数,且仅能处理10进制字符串。 
(1)字符串中的第一个小数点是有效的,而第二个小数点就是无效的了,因此它后面的字符串将被忽略。 
(2)如果字符串包含的是一个可解析为整数的数(没有小数点,或者小数点后面都是零),parseFloat()会返回整数。

(3)也可以处理一个纯数字,不过意义不大,直接返回数字本身。

var num1=parseFloat("1234blue");    //1234

var num2=parseFloat("0xA");         //0

var num3=parseFloat("0908.5");      //908.5

var num4=parseFloat("3.125e7");     //31250000

var num5=parseFloat("123.45.67")    //123.45

var num6=parseFloat("")             //NaN

var num7=parseFloat("num123")       //NaN

var num8=parseFloat(8.3)           //8.3

var num9=parseFloat(9)             //9

三,Math.round()

作用:四舍五入,需要注意的是数字为负数时,绝对值需要>5才能“入”,而数字为正数是,>=5都可以“入”。

Math.round(5.51)  //返回6

Math.round(2.4)   //返回2

Math.round(-1.4)  //返回-1

Math.round(-1.5)  //返回-1

Math.round(-1.51)  //返回-2,这个是特殊情况

Math.round(-5.8)  //返回-6

四,Math.floor()

作用:返回贴地板整数,正数和负数不一样,但都是往实际大小的小那个方向取

Math.floor(5.57)  //返回5

Math.floor(2.4)  //返回2

Math.floor(-1.5)  //返回-2

Math.floor(-5.8)  //返回-6

五,Math.ceil()

作用,返回天花板整数,正数和负数不一样,但都是往实际大小的大那个方向取

Math.ceil(5.57)  //返回6

Math.ceil(2.4)  //返回3

Math.ceil(-1.5)  //返回-1

Math.ceil(-5.8)  //返回-5

六,Number()

作用:用于把任何类型转为数值。具体如下:

(1)如果是Boolean值,true和false将分别转换为1和0。 
(2)如果是数字值,只是简单的传入和返回。 
(3)如果是null值,返回0。 
(4)如果是undefined,返回NaN。 
(5)如果是字符串,遵循下列规则: 
如果字符串截去开头和结尾的空白字符后,不是纯数字字符串,那么最终返回结果为NaN。 
如果是字符串中只包含数字(包括前面带正号或负号的情况),则将其转换为十进制数值,即“1”变成1,“123”会变成123,而“011”会变成11(前导的零被忽略了); 
如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样也会忽略前导零); 
如果字符串中包含有效的十六进制格式,例如”0xf”,则将其他转换为相同大小的十进制整数值; 
如果字符串是空的(不包含任何字符),则将其转换为0; 
如果字符串中包含除上述格式之外的字符,则将其他转换成NaN. 
(6)如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用的对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

var num1=Number("Hello World");  //NaN

var num2=Number("");             //

var num3=Number("000011");       //

var num4=Number(true);           //

var num5=Number("num123")       //NaN

Number(),parseInt(),parseFloat(),Math.round(),Math.floor(),Math.ceil()对比横评的更多相关文章

  1. Number,parseInt,parseFloat函数

    Number,parseInt,parseFloat函数 console.group('Number'); console.log(Number( console.log(Number( consol ...

  2. 关于Math类的round、floor、ceil三个方法

    一.Math类这三个方法的简介 1.round():取最接近的值. 对于这个方法,查看源代码,其实现如下: public static long round(double a) { if (a != ...

  3. Number(), parseInt(), parseFloat()

    var n="100.11px";console.log(Number(n));//NaNconsole.log(parseInt(n));//100console.log(par ...

  4. Math.floor,Math.ceil,Math.rint,Math.round用法

    一.Math.floor函数讲解 floor原意:地板.Math.floor函数是求一个浮点数的地板,就是求一个最接近它的整数,它的值小于或等于这个浮点数.看下面的例子: package com.qi ...

  5. int和integer;Math.round(11.5)和Math.round(-11.5)

    int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0,而Integer的默认值为null,即Integer可 ...

  6. Math.round()

    在 JAVA 中四舍五入采用 Math.round(T a) 函数,函数返回的是一个 long 类型的长整型,参数 a 可以是 double 也可以是 float. 查看 JDK 源码: public ...

  7. Java Math.round()函数小结

      Math类中提供了三个与取整有关的方法:ceil,floor,round,这些方法的作用于它们的英文名称的含义相对应,例如:ceil的英文意义是天花板,该方法就表示向上取整,Math.ceil(1 ...

  8. Javascript四舍五入(Math.round()与Math.pow())

    代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ ...

  9. 【JAVA】Math.Round()函数常见问题“四舍5入”

    java.lang.Math.Round()使用时候,处理方式整理,方便以后查找   /**  * 测试函数 2014-01-10  */ public class TestMath {     pu ...

随机推荐

  1. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  2. erlang 在线生成crashdump

    一般说来抓dump 4种 方式:      1. erlang:halt(“abort”).      2. 在erlang shell下输入CTRL C + “大写的A”      3.等着进程崩溃 ...

  3. html5和css3的常用参考网

    当我们使用HTML5, CSS3,甚至Bootstrap设计网站的时候,有些方面是必须考虑的,比如字体大小,标题大小,行间距,每行字数,字体,颜色,背景图片和文字的搭 配,图标,留白和布局...... ...

  4. AeroSpike 资料

    文档总览:http://www.aerospike.com/docs/ JAVA AeroSpike知识总览:http://www.aerospike.com/docs/client/java/sta ...

  5. float与double的范围和精度(摘录)

    什么是浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数.典型的比如相对于浮点数的定点数(Fixed Point Number).在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置. ...

  6. 使用 Entity Framework Code First

    使用 Entity Framework Code First 在家闲着也是闲着,继续写我的[ASP.NET MVC 小牛之路]系列吧.在该系列的上一篇博文中,在显示书本信息列表的时候,我们是在程序代码 ...

  7. 在azure中建立DDC集群

    在Azure上建立DDC集群 建立3台虚拟机作为UCP集群,3台虚拟机作为DTR集群. 资源组:HYD-DockerDateCenter 虚拟机size:DS3 4核14G 系统:ubuntu14.0 ...

  8. Hashtable与Dictionary比较

    项目需要存储Tcp连接对象,考虑使用Hashtable或者Dictionary存储.Hashtable在查询方面有优势,Dictionary在确定类型下不需要拆箱与装箱有优势.于是,写了个demo对两 ...

  9. Netty实现的一个异步Socket代码

    本人写的一个使用Netty实现的一个异步Socket代码 package test.core.nio; import com.google.common.util.concurrent.ThreadF ...

  10. hdu4059 The Boss on Mars 容斥原理

    On Mars, there is a huge company called ACM (A huge Company on Mars), and it’s owned by a younger bo ...