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
更糟糕的是,我刚才改用字符串型,好象都是这样 !! VBS里面有没有什么函数可以限制小数位的?
是ACCESS的问题,js里用toFixed()方法: var nNum=1.7003 var n=2 alert(nNum.toFixed(n)) //n为小数位
toFixed()好象在IE5。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>
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); }
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
VBS里面有没有什么函数可以限制小数位的?
var nNum=1.7003
var n=2
alert(nNum.toFixed(n)) //n为小数位
<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>
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);
}