zoukankan      html  css  js  c++  java
  • javascript 中的number

      大家都知道javascript中有五种简单数据类型,number,string,boolean,null,undefined,复杂数据类型是object。本文主要记录下number类型的一些可能不太常用的东西。以下内容均来自javascript高级教程,算是重读这本书的读书笔记吧。

      首先常用的进制肯定是10进制了,但是如果一个数字是以0开头的,就会被当作八进制的数字,如下代码:

         

    1 var a=070;
    2 console.log(parseInt(a,10)); //结果是56

      十六进制也存在同样的问题,不过16进制一般我们遇到比较少,因为16进制是以0x开头的

       另外,在严格模式下,如果使用八进制会报错的,看如下例子:

    1 (function(){
    2     'use strict';
    3     var a=070;
    4     console.log(a);
    5 })()
    6 //SyntaxError: Octal literals are not allowed in strict mode.

      说到浮点数,js中可以这么写,但是不推荐

    1 var floatNum1=1.1;
    2 var floatNum2=0.1;
    3 var floatNum3=.1;//可以省略前面的点
    4 console.log(floatNum2==floatNum3);
    var a=1. //被解析为1
    var b=10.0 //被解析为10

    另外,对float型的有舍入误差会导致下面的场景,0.1+0.2 != 0.3,例子如下:

      

    1 console.log(0.1+0.2)//0.30000000000000004
    2 console.log(1.0-0.9)//0.09999999999999998
    3 console.log(1.0-0.6 == 0.4)//true
    4 
    5 //这是解决办法
    6 parseFloat((0.1+0.2).toFixed(10))//0.3
    7 parseFloat((1.0-0.9).toFixed(10));//0.1

    哈哈,好了不扯蛋了,还有两点,数值的范围跟非数值

     js中的数字不是无限大的,超出某个界限就会变成Infinity,不过这个数字很大

    1 Number.MAX_VALUE
    2 Number.MIN_VALUE
    3 Number.MAX_SAFE_INTEGER
    4 Number.MIN_SAFE_INTEGER

    附上一个文档地址,这个有关于那个值的描述

    最后,说下NaN,即not a  number ,是数字计算出错的时候会返回这个比如进行除数为0的除法,可以使用isNaN来判断结果是不是非数字,另外NaN和任何数字不相等

    NaN==NaN //false

    最后,在使用

    parseFloat之类的方法的时候要小心,后面第二个参数尽量不要省略,会有惊喜的,哈哈!
  • 相关阅读:
    负载平衡问题
    [SHOI2008]堵塞的交通traffic
    Bzoj3626 [LNOI2014]LCA
    [TJOI2015]旅游
    [SCOI2016]美味
    [AH/HNOI2017]单旋
    Luogu3613 睡觉困难综合征
    [SCOI2007]降雨量
    [SCOI2005]王室联邦
    HAOI2011 problem a
  • 原文地址:https://www.cnblogs.com/onedayof2010/p/4497488.html
Copyright © 2011-2022 走看看