我通过js计算得到一个数var mount=parseFloat(110*1000000);
显示到页面上是变成了:  "1.1e+008"...这是怎么回事啊???
请前辈们帮小弟看看啊

解决方案 »

  1.   

    兄台,按照ECMA的标准,大于等于6位的浮点数都会使用科学计数法表示,对你使用没什么影响。但是现在又很多浏览器不按照这个来做,比如chrome就是20位以上才会。
      

  2.   

    你可以用这个试下:
    110 * Math.pow(10, 7);
      

  3.   

    都是菜鸟哈,不用称呼前辈;用这个试试:function toFixed(x) {
      if (x < 1.0) {
        var e = parseInt(x.toString().split('e-')[1]);
        if (e) {
            x *= Math.pow(10,e-1);
            x = '0.' + (new Array(e)).join('0') + x.toString().substring(2);
        }
      } else {
        var e = parseInt(x.toString().split('+')[1]);
        if (e > 20) {
            e -= 20;
            x /= Math.pow(10,e);
            x += (new Array(e+1)).join('0');
        }
      }
      return x;
    }
      

  4.   

    我的浏览器是20以上,你可以根据你的浏览器改下else里面的语句。
      

  5.   

    我的个人理解,JS里面的parseFloat中是先判断前面能进行转化的数值进行转换110*1000000因为*是字符
    所以只是将前面的110转换成了浮点数后面是8位所以结果可想而知了!
      

  6.   

    var mount=parseFloat(110*1000000)+"";
    alert(mount)