zoukankan      html  css  js  c++  java
  • js 关于字符串转数字及数字保留位数的控制

    1.parseInt()和parseFloat()两个转换函数,将字符串转换成相应的数字。

      1.parseInt()

        parseInt进行转换时,将字符串转成相应的整数。浮点数以后的数字都不要了。

        parseInt("1234blue");  //returns  1234 
        parseInt("22.5");  //returns  22 
        parseInt("blue");  //returns  NaN

        

        另外parseInt转换时是包含有基模式的,按照指定的转换进制进行相应的整数转换的,基数是由第二个参数传入的。

        parseInt("AF",  16);  //returns  175 ---16进制
        parseInt("10",  2);  //returns  2 ---------2进制
        parseInt("10",  8);  //returns  8 ---------8进制
        parseInt("10",  10);  //returns  10 ------10进制

        需要注意的是,如过字符串的第一个字符时0,则最好传入指定的基数,不然会意外的转成八进制整数。

        parseInt("010");  //returns  8 
        parseInt("010",  8);  //returns  8 
        parseInt("010",  10);  //returns  10

      2.parseFloat()

        parseFloat()方法与parseInt()方法的处理方式相似。 
        使用parseFloat()方法的另一不同之处在于,字符串必须以十进制形式表示浮点数,parseFloat()没有基模式。

        下面是使用parseFloat()方法的示例: 
        parseFloat("1234blue");  //returns  1234.0 
        parseFloat("0xA");  //returns  NaN 
        parseFloat("22.5");  //returns  22.5 
        parseFloat("22.34.5");  //returns  22.34 
        parseFloat("0908");  //returns  908 
        parseFloat("blue");  //returns  NaN

    2.利用js变量弱类型转换

      即js在执行数字运算的时候,除+以外的符号,在进行运算时,如果参与运算的数字是字符的形式,js会自动将其转成数字。

      举个小例子,例子中采用数字与0的减号运算,自动将字符串转成数字。 
        var  str= '012.345 '; 
        var  x  =  str-0; 
        x  =  x*1; 

      上例利用了js的弱类型的特点,只进行了算术运算,实现了字符串到数字的类型转换,不过这个方法还是不推荐的

      同时,也可以反过来使用,将数字转成字符串,数字在与字符进行+号运算时,执行的是字符串拼接,会将数字转成字符串进行拼接。

        例如

        var num=11225;

        var str=num+‘’;

    3.在对含有小数的数据进行处理的时候,往往需要保留指定的小数位数。针对保留一定位数的小数的方法有很多种。以下以保留两位小数列举几种。

      1.比较新的方法toFixed,含有四舍五入的运算(IE 5.5+才支持)。

        用法:2.453255.toFixed(2)  //2.45

           2.447088.toFixed(2) //2.45

      2.利用下取正,按照指定位数转成整数,再转回去,不包含四舍五入。

        Math.floor(15.7784514000 * 100)/100 //15.77   注:如果需要此方法实现四舍五入,配合上取整,和一定的逻辑进行实现。

      3.另外几个对小数进行取整的API。

        parseInt();  //丢弃小数部分,取整数部分,相当于下取整,Math.floor();

        Math.ceil(5/2);    //向上取整,小数只要存在,就整数部分+1;

        Math.round(5/2);   //四舍五入取整。

        Math.floor(5/2);   //向下取整,小数直接去掉,小数部分无论多大,整数部分都不+1。

      4.另外还可以通过字符串控制,正则表达式匹配进行保留位数的控制,方法比较多,比较灵活。这里不再总结。

  • 相关阅读:
    [转]vc中socket编程步骤
    [转载]使用命名管道实现进程间通信
    换肤软件摘要
    3D 专业词汇 (转)
    如何从 Microsoft DirectShow 筛选器图形获取数据(转)
    “人大艺术学院”“赵雅芝中文网”等网站被挂马 狼人:
    微软将发布5月安全漏洞补丁 修补PPT 狼人:
    专家提醒:网络挂马借“海运女”传播 狼人:
    黑客借“甲型流感”传毒 挂马疾病预防控制中心网站 狼人:
    黑客称攻破乔布斯亚马逊网站账户 欲售相关信息 狼人:
  • 原文地址:https://www.cnblogs.com/true-true/p/9772286.html
Copyright © 2011-2022 走看看