求助JS四舍五入的方法 var a=3.237;//取2位小数,4舍5入,则a=a+0.005;//a=3.242a=a.toString();然后去小数点后面2位的截掉(3.24)。(以上为正数时候) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 var result=Math.round(original*100)/100 //returns 28.45 <script> var original=28.445; var result=Math.round(original*100)/100 //returns 28.45 alert(result);</script> JS中有该功能的内部函数:Math.round(arg);//返回arg经四舍五入后的值 <html><head><SCRIPT LANGUAGE="javascript">function FormatNumber1(srcStr,nAfterDot){ alert(srcStr); var srcStr,nAfterDot; var resultStr,nTen; srcStr = ""+srcStr+""; strLen = srcStr.length; dotPos = srcStr.indexOf(".",0); if (dotPos == -1){ resultStr = srcStr+"."; for (i=0;i<nAfterDot;i++){ resultStr = resultStr+"0"; } return resultStr; } else{ if ((strLen - dotPos - 1) >= nAfterDot){ nAfter = dotPos + nAfterDot + 1; nTen =1; for(j=0;j<nAfterDot;j++){ nTen = nTen*10; } resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen; return resultStr; } else{ resultStr = srcStr; for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){ resultStr = resultStr+"0"; } return resultStr; } }} </script></head><body><input type="button" onclick="alert(FormatNumber1('23324.5447342',3));" /></body></html>保留三位小数,第四位四舍五入 请问:dotPos = srcStr.indexOf(".",0);是不是求的该数的小数部位有几位???那(strLen - dotPos - 1) >= nAfterDot应该是用来判定它的小数部位大于要精确到的位数可是不理解,感觉strLen - dotPos - 1的结果是该数的整数部分的位数,那就讲不通了??能否给解释一下,谢谢了!!! 呵呵,已经明白,突然发现问题!恰恰相反,这dotPos = srcStr.indexOf(".",0);是用来获得整数部位有几位的!!真是好幼稚! /* * ForDight(Dight,How):数值格式化函数,Dight要 * 格式化的 数字,How要保留的小数位数。 */ function ForDight(Dight,How) { Dight = Math.round (Dight*Math.pow(10,How))/Math.pow(10,How); return Dight; } alert(ForDight(12345.67890,2)); jquery中的函数问题 JS如何获取td下的文本值 不用框架 大虾们帮我看看代码吧。 jsp提交后 子窗口关闭,刷新父窗口 如何得到IE7中的网页比例?求助......急!!! 求一个正则表达式 一个判断是不是网络图片的地址 javascript 控制 div 层显示位置的问题 JSON属性名引号的问题 求一关于替换的正则式! thinkphp,javascript库存量问题 点击链接之后变色,如何实现? 求助,关于js中的字符替换
var original=28.445;
var result=Math.round(original*100)/100 //returns 28.45
alert(result);
</script>
<head>
<SCRIPT LANGUAGE="javascript">
function FormatNumber1(srcStr,nAfterDot){
alert(srcStr);
var srcStr,nAfterDot;
var resultStr,nTen;
srcStr = ""+srcStr+"";
strLen = srcStr.length;
dotPos = srcStr.indexOf(".",0);
if (dotPos == -1){
resultStr = srcStr+".";
for (i=0;i<nAfterDot;i++){
resultStr = resultStr+"0";
}
return resultStr;
}
else{
if ((strLen - dotPos - 1) >= nAfterDot){
nAfter = dotPos + nAfterDot + 1;
nTen =1;
for(j=0;j<nAfterDot;j++){
nTen = nTen*10;
}
resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
return resultStr;
}
else{
resultStr = srcStr;
for (i=0;i<(nAfterDot - strLen + dotPos + 1);i++){
resultStr = resultStr+"0";
}
return resultStr;
}
}
}
</script>
</head>
<body>
<input type="button" onclick="alert(FormatNumber1('23324.5447342',3));" />
</body>
</html>
保留三位小数,第四位四舍五入
是不是求的该数的小数部位有几位???
那(strLen - dotPos - 1) >= nAfterDot应该是用来判定它的小数部位大于要精确
到的位数
可是不理解,感觉strLen - dotPos - 1的结果是该数的整数部分的位数,那就讲不通了??能否给解释一下,谢谢了!!!
恰恰相反,这dotPos = srcStr.indexOf(".",0);是用来获得整数部位有几位的!!真是好幼稚!
* ForDight(Dight,How):数值格式化函数,Dight要
* 格式化的 数字,How要保留的小数位数。
*/
function ForDight(Dight,How)
{
Dight = Math.round (Dight*Math.pow(10,How))/Math.pow(10,How);
return Dight;
}
alert(ForDight(12345.67890,2));