<script>
alert( (507000.2138 * 1000 +17790.474 * 1000 )/1000);
</script>

解决方案 »

  1.   

    嗯, 运算时用 x 1000 的方法还不错!烂Javascript...结果有什么纠正的好办法么?
      

  2.   

    参考<script>
    //计算n个数字的和alert(calcAdd(507000.2138,17790.474 ))
    alert(calcAdd(507000.2138,17790.474,1.00))function calcAdd() {
    var argc = arguments.length;
    var value = new Array();

    var maxDecPoint = 0;
    var maxLength = 0;
    for(var i=0;i<argc;i++) {
    /* Evaluates */
    value[i] = trimDecPoint(arguments[i].toString());
    if (maxLength < value[i].length) {
    maxLength = value[i].length;
    }

    /* Find The Location of Max Dec-Point */
    var m = 0;
    if (value[i].lastIndexOf(".")!=-1) {
    m = value[i].length - 1 - value[i].lastIndexOf(".");
    }
    if (maxDecPoint < m) {
    maxDecPoint = m;
    }
    } /* Detecting the isFloat Parameter */
    var result = 0;
    for(var i=0;i<argc;i++) {
    /* Add Zero to Max Dec-Point */
    var m = 0
    if (value[i].lastIndexOf(".")!=-1) {
    m = value[i].length - 1 - value[i].lastIndexOf(".");
    }
    if (m < maxDecPoint) {
    for(var k=0;k<maxDecPoint-m;k++) {
    value[i] = value[i].concat("0");
    }
    }

    /* Dispose the Dec-Point */
    value[i] = parseInt(trimLeftZero(disposeDecPoint(value[i])));
    result+=value[i];
    }

    /* Add the Dec-Point for Result */
    result = result.toString();
    var i = result.length - maxDecPoint;
    ret = result.substring(0,i); /* Get Integer Part */
    if (maxDecPoint>0) {
    ret = ret.concat(".").concat(result.substring(i,result.length));
    }
    if (ret.charAt(0)=='.') {
    ret = "0".concat(ret);
    }
    return ret; return trimRightZero(ret);
    }function trimDecPoint(value) {
    value = value.toString();
    for(k=value.length-1;k>=0;k--) {
    if(value.charAt(k)!='.') {
    startNotDecPoint = k;
    break;
    }
    }
    if (startNotDecPoint < value.length) {
    value = value.substring(0,startNotDecPoint+1);
    }
    return value;
    }function trimRightZero(value) {
    value=value.toString();
    var startNotZero  = 0;
    for(k=value.length;k>1;k--) {
    if (value.charAt(k) != '0') {
    startNotZero = k;
    break;
    }
    }
    if (startNotZero<value.length) {
    value = value.substring(0, startNotZero);
    }
    return value;
    }function disposeDecPoint(value) {
    value = value.toString();
    var i = value.lastIndexOf(".");
    value = value.substring(0, i).concat(value.substring(i+1, value.length));
    return value;
    }
    function trimLeftZero(value) {
    value=value.toString();
    var startNotZero = 0;
    for(k=0;k<value.length-1;k++) {
    if (value.charAt(k) != '0') {
    startNotZero = k;
    break;
    }
    }
    if (startNotZero>0) {
    value = value.substring(startNotZero, value.length);
    }
    return value;
    }
    </script>
      

  3.   

    请参考
    http://pub.idr.gov.cn/dujid/projects/jsfloatcalc/