项目中遇到这样的问题,要在js里将一个数字累加。可是这个数是类似0002334   004523002这样的数字。如果转型后进行计算前面的0将会消失,这个问题如何解决还请高手指点,,先谢过了,有例子更好。

解决方案 »

  1.   

    +1
    一位一位加,注意进位。或者不管前面的0,把结果算出来,然后把前面的0补上。不要转型,当string存。
      

  2.   

    楼主在进行计算的时候也计算结果的字符串长度,如果长度不够就在前面链接N个0,例如:要求:长度10,不够以0在前面补充得出的结构假如是sum = 123那么就:
    var s = "";
    for(var i = 0; i < 10 - (sum + "").length; i++){
        s += "0";
    }
    s += sum;
    alert(sum);就会成为“0000000123”了
      

  3.   

    function fun1(str1,str2){
    var len = str1.length>str2.length?str1.length:str2.length;
    var sum = parseInt(str1,10)+parseInt(str2,10);
    return "000000000000".substring(0,len-(sum+"").length)+sum;
    }
    alert(fun1("000019","1"));
      

  4.   

    稍微写了一下. LZ看一下<script language="javascript">
    function showLongNum(num, length){
    var numLong = num.toString().length; 
    if(numLong >= length){return num.toString();}

    var needZero = length - numLong;
    var str = "";
    for(var i =0; i < needZero;i++){
    str += "0";
    }
    str += num.toString();
    return str;
    }

    function addOn(str1, str2){
    return parseInt(str1, 10) + parseInt(str2, 10);
    }

    function init(){
    var Num1 = "0002334", Num2 = "004523002";
    var sub = addOn(Num1, Num2);//求整数的和
    var maxNumberLength = Math.max(Num1.length, Num2.length);//取最长一个数的长度
    var result = showLongNum(sub, maxNumberLength);//根据长度补0
    alert(result);
    return result;
    }

    window.onload = init;
    </script>
      

  5.   

    http://www.xueit.com/html/2009-05/21_2043_00.html