js本身的缺陷。你可以先转换成整数,再运算,然后除转换因子<script>
alert(1.28+0.1)
alert((128+10)/100)
</script>

解决方案 »

  1.   

    JS那里似乎现在没有问题,这是提交后生成的SQL:
    Insert Into stockTemp(stockID,location,spec,model,[slevel],box,pieceInbox,piece,total,[value],tvalue,totalvalue) values(200301200003,1,4,1,1,1,1,1,2,1.2,0.5,1.7)
    上面的明明是"1.7",但写进ACCESS,依然变成了:1.70000004768372
      

  2.   

    更糟糕的是,我刚才改用字符串型,好象都是这样 !!
    VBS里面有没有什么函数可以限制小数位的?
      

  3.   

    是ACCESS的问题,js里用toFixed()方法:
    var nNum=1.7003
    var n=2
    alert(nNum.toFixed(n))  //n为小数位
      

  4.   

    toFixed()好象在IE5。5以后才支持,还是用孟子的方法好了
      

  5.   


    <script>
    alert(qswhAdd(1.28,0.1))
    function qswhAdd(n1,n2){
    var r1,r2,m;
    try{r1=n1.toString().split(".")[1].length}catch(e){r1=0}
    try{r2=n2.toString().split(".")[1].length}catch(e){r2=0}
    m=Math.pow(10,Math.max(r1,r2))
    return (n1*m+n2*m)/m
    }
    </script>
      

  6.   

    function fixTo(s,i){
    if (s==null || s=="" || isNaN(s) || Math.round(s)==0) return 0;
    i = Math.round(i);
    if (i==0) return Math.round(s);
    if (i==null || isNaN(i) || i<0) i=2;
    var v = Math.round(s*Math.pow(10,i)).toString();
    if (/e/i.test(v)) return s;
    return v.substr(0,v.length-i)+"."+v.substr(v.length-i);
    }