zoukankan      html  css  js  c++  java
  • Number(),parseInt()和parseFloat

    一、Number()

      1.如果是传进去数字值,只进行传入和传出,前置为  0x  的数字 和 前置  为0且不包含数字8,9的数字  ,会被转为十进制,对于其他的数字来说通常没有变化。

      2.如果传进去Boolean,true和false会被转成1和0。

      3.传进去null或者undefined,会被转成0和NaN

      4.对于传进去字符串:

        a.如果字符串只包含数字,忽略前置的0,将其转换为  十进制  。

        b.带小数点的字符串,忽略前置的0,将其转换为对相应的  浮点数。

        c.十六进制的话,也会将其转换为十进制。如0xfff 会被转成4095.

        d.字符串如果是空的,或者只含有空格的字符串,会被转成0.

        e.如果字符串中含有非数字的字符,转成NaN。如 “10*10”算式也会转成NaN

      5.传进去的函数,数组,集合等对象,会先按照之前的规则转换返回值,如果是NaN,则再调用对象的toString,然后在依照前面的规则转换返回的字符串。

     1 //整数字符串或者带小数点字符串
     2         document.write(Number("8944") + "<br>"); //8944
     3         document.write(Number("89.44") + "<br>");//89.44
     4         document.write(Number("10*10") + "<br>");//NaN
     5         document.write(Number(0666) + "<br>");//NaN
     6         //带字符的数字
     7         document.write(Number("8944hh") + "<br>");//NaN
     8         document.write(Number("hh8947") + "<br>");//NaN
     9         //为空或者undefined
    10         document.write(Number() + "<br>");//0
    11         document.write(Number(undefined) + "<br>");//NaN
    12         //前置0x
    13         document.write(Number("0xfff") + "<br>");//4095
    14         document.write(Number("06666") + "<br>");//6666
    15         //前置一个或多个0
    16         document.write(Number("08944") + "<br>");//8944
    17         document.write(Number("00010101") + "<br>");//默认转成十进制
    18         //布尔值
    19         document.write(Number(true) + "<br>");
    20         document.write(Number(false) + "<br>");
    21         //对象或者函数
    22         function num(){return '123456'};
    23         document.write(Number(function(){}) + "<br>");//NaN
    24         document.write(Number(num()) + "<br>");//123456
    25         document.write(Number([1,2,3,4]) + "<br>");//NaN
    26         document.write(Number({a:1,b:2,c:3}) + "<br>");//NaN

    二、parseInt()

      1.parseInt(numstring, [radix])函数用于把字符串转换为整数。参数radix可选,如果设置2-36之间的整数,则表示numstring的进制,转成对应的十进制数字。但是numstring的是否符合设定的进制规则,需要注意。

      2.如果没有设置radix参数,则前置0x,0的数字会被当成十六进制和八进制。

      3.parseInt 是可以解析字符串中带字符的数字的,默认  parseInt()  方法会从字符串的首字符开始分析,如果是有效数字,就继续分析下一个位置的数字,知道发现非有效数字为止(字母、小数点、其他符号等)。

      4.parseInt 在转换浮点数的时候不是进行四舍五入,而是直接取小数点前面的整数。 

      5.parseInt 对数值表达式的转化,是先计算整数值。

      6.对布尔值、空值、undefined等,parseInt返回值都是NaN。

      7.传进去一个数组的时候,会返回数组中第一个的值,如果是NaN,然后在以字符串的形式进行转换。

     1 //整数字符串或者带小数点字符串
     2         document.write(parseInt("8944") + "<br>"); //8944
     3         document.write(parseInt("89.44") + "<br>");//89
     4         document.write(parseInt("10*10") + "<br>");//10
     5         document.write(parseInt(0666) + "<br>");//438
     6         //带字符的数字
     7         document.write(parseInt("8944hh") + "<br>");//8944
     8         document.write(parseInt("hh8947") + "<br>");//NaN
     9         //为空或者undefined、布尔值
    10         document.write(parseInt(true) + "<br>");
    11         document.write(parseInt(false) + "<br>");
    12         document.write(parseInt() + "<br>");//NaN
    13         document.write(parseInt(undefined) + "<br>");//NaN
    14         //对象或者函数
    15         function num(){return '123456'};
    16         document.write(parseInt(function(){}) + "<br>");//NaN
    17         document.write(parseInt(num()) + "<br>");//123456
    18         document.write(parseInt(["11h",2,3,4]) + "<br>");//1
    19         document.write(parseInt({a:1,b:2,c:3}) + "<br>");//NaN

    三、parseFloat

      1.parseFloat(numstring)和parseInt类型,只是转成浮点数。

      2.需要注意的是,在进行转换的的时候,只会解析遇到的第一个有效的小数点,后边遇到的小数点和字符会被当成无效字符,停止解析

      3.在进行字符串解析的时候,parseFloat始终会忽略前置的0,如  "0xfff", 会被解析成0。

    1         document.write(parseFloat("8944") + "<br>"); //8944
    2         document.write(parseFloat("89.44") + "<br>");//89.44
    3         document.write(parseFloat("89.44.44") + "<br>");//89.44
    4         document.write(parseFloat(0666) + "<br>");//438
    5         document.write(parseFloat(0x10) + "<br>");//16
    6         document.write(parseFloat("0xfff") + "<br>");//0    
    Number()方法与parseInt()方法、parseFloat()方法区别
    Number() parseInt() parseFloat
    Number(false),结果为0 parseInt(false),结果为NaN parseFloat(false),结果为NaN
    Number(true),结果为1 parseInt(true),结果为NaN parseFloat(true),结果为NaN
    Number(null),结果为0 parseInt(null),结果为NaN parseFloat(null),结果为NaN
    Number("1.1.1"),结果为NaN parseInt("1.1.1"),结果为NaN parseFloat("1.1.1"),结果为NaN
    Number("123HELLO"),结果为NaN parseInt("123HELLO"),结果为123 parseFloat("123HELLO"),结果为123
  • 相关阅读:
    git 拉取远程代码 git branch -vv --all
    常用命令统计
    topology key
    gstreamer 相关直播源(rtmp rtsp)
    汉诺塔问题 最简单的图文讲解递归实现
    RTP 用ffmpeg
    kurento + nodejs 开源项目 webRTC 转成 RTMP输出
    RTP SDP 详解 RTCP 附带说了一下SRTP RTSP
    RxSwiftCommunity/Action使用介绍
    zsh Shell 增加自动补全、语法高亮
  • 原文地址:https://www.cnblogs.com/mwxz/p/13297172.html
Copyright © 2011-2022 走看看