javascript在数值计算的时候结果如何强制不使用科学计数法

解决方案 »

  1.   

    将计算出来的结果转换成string格式,试试.tostring()
      

  2.   

    转成float你自己指定保留小数点位数就可以了
    .toFixed(n)
      

  3.   

    在IE中可以
    但在FIREFOX中不行
      

  4.   


    你自己写的代码FIREFOX不兼容吧,toFixed只是一个函数
      

  5.   


    我写的测试代码很简单function test() { 
    var a = new Number(document.getElementById('number1').value);
    var b =  new Number(document.getElementById('number2').value);
    var c = (a*b); document.getElementById('result').value = c.toFixed(c.length);


    当输入的数值过大的时候在IE上不会变成科学计数法,在FIREFOX上还是科学计数法,c.toFixed(c.length)好像不起作用
      

  6.   


    toFixed(n),n指的是小数点后的位数
    c.toFixed(c.length)这是什么意思?
      

  7.   

    var a = new Number(999999999.99);
    var b = new Number(999999999.99);
    var c = (a * b);alert(c.toFixed(2));测试各个浏览器都可以的阿?如果是无穷大请用 isFinit 判断。
      

  8.   

    写错了,因为是整数c.toFixed(0)在FIREFOX中也不行
      

  9.   

    你的数值还不够大
    在FIREFOX上试试这个
    var a = new Number(9999999999999.99); 
    var b = new Number(9999999999999.99); 
    var c = (a * b); alert(c.toFixed(2)); 
      

  10.   

    原来楼主是这个意思 才明白 ...
    估计 Firefox 有默认数值显示上限。
    这样只能把 9.99999999999998e+25 自己写个函数转化一下了 9.99999999999998 x 10 的 25 次方 ...
    这个函数写起来应该不难把 :)
      

  11.   

    结贴了,有时间帮你弄了一个函数,可以参考一下,呵呵:// Param 说明
    // num : 需要转化的数字
    // dec : 保留小数位数
    function e2c (num, dec) {
    var str = new String(num);
    var e_pos = str.indexOf('e+');
    var p_pos = str.indexOf('.');
    // For Firefox 科学计数法
    if (e_pos > 0) {
    bit = e_pos - p_pos - 1;
    tim = str.substr(e_pos + 2);
    str = str.substr(0, e_pos).replace('.', '');
    var mov = tim - bit;
    while (mov > 0) {
    str += '0';
    mov--;
    }
    str += '.';
    while (dec > 0) {
    str += '0';
    dec--;
    }
    return str;
    }
    return num;
    }var a = new Number(9999999999999.99);
    var b = new Number(9999999999999.99);
    var c = (a * b);alert(e2c(c.toFixed(2), 2));
      

  12.   


    转成float你自己指定保留小数点位数就可以了.toFixed(n),这个方法特别正确。
      

  13.   

    parseFloat(variable);转成float你自己指定保留小数点位数就可以了.toFixed(n),这个方法特别正确。
    [/Quote]