当前位置: 代码迷 >> 综合 >> JS自定义保留小数,并支持补零(四舍五入)
  详细解决方案

JS自定义保留小数,并支持补零(四舍五入)

热度:48   发布时间:2023-12-24 17:16:16.0

今天项目要求前端显示金额保留两位小数,于是自己写了一个函数。能够支持自定义保留小数位和补零操作。

话不多说,上JS代码:

//精确小数点
//number:为你要转换的数字
//format:要保留几位小数;譬如要保留2位,则值为2
//zerFill:是否补零。不需要补零可以不填写此参数
function  accurateDecimal(number,format,zeroFill){//判断非空if (!isEmpty(number)){//正则匹配:正整数,负整数,正浮点数,负浮点数if (!/^\d+(\.\d+)?$|^-\d+(\.\d+)?$/.test(number)) return number; var n=1;for(var i=0;i<format;i++){n=n*10;}//四舍五入number=Math.round(number*n)/n;var str=number.toString();//是否补零if(zeroFill){var index;if(str.indexOf(".")==-1){index=format;str+='.';}else{index=format-((str.length-1)-str.indexOf("."));}for(var i=0;i<index;i++){str+='0';}}return str;}return number;
};//非空验证
function isEmpty(ObjVal){if ((ObjVal==null || typeof(ObjVal)=="undefined")|| (typeof(ObjVal)=="string"&&ObjVal==""&&ObjVal!="undefined")){return true;}else{return false;}
}

项目效果:

 

函数调用:

var nunber=accurateDecimal(123.456,2,'Y');

alert(nunber);

若不需要补零则:

var nunber=accurateDecimal(123.45,3);

alert(nunber);

 

代码有瑕疵可在下方留言。谢谢观赏~

  相关解决方案