如何改写js函数,使其实现类似四舍六入五留双而非四舍五入的效果?
- 内容介绍
- 文章标签
- 相关推荐
本文共计183个文字,预计阅读时间需要1分钟。
javascriptnumFormat.js: /* * 格式化数字* arg: 需要格式化的数字* count: 保留的小数点位数*/function numFormat(arg, count) { if (!isNaN(arg) && count >=0) { var argStr=Number(arg).toString(); if (new RegExp(^\\d+\\.\\d{ + (count + 1) + }$).test(argStr)) { return argStr; } else { return arg.toFixed(count); } }}
numFormat.js/* * arg 需要四舍六入五留双的数 * count 需要保留的小数点位数 */ function numFormat(arg, count){ if(!isNaN(arg) && count > 0) { var argStr = Number(arg).toString(); if(new RegExp("^\\d+\\.\\d{" + (count + 1) + ",}$").test(argStr)) { //需要修约正则 var tarArg = Number(argStr.substr(0, argStr.length - (argStr.split(".")[1].length - count))); var m = Math.pow(10, count); if(new RegExp("^\\d+\\.\\d{" + count + "}[6-9]\\d*$").test(argStr) || //6入 new RegExp("^\\d+\\.\\d{" + (count - 1) + "}[1|3|5|7|9][5]$").test(argStr) || //5前为奇数 new RegExp("^\\d+\\.\\d{" + count + "}[5]\\d+$").test(argStr)) { //5后有大于0的数 return(tarArg * m + 1) / m; } return(tarArg * m) / m; } } return arg; }
本文共计183个文字,预计阅读时间需要1分钟。
javascriptnumFormat.js: /* * 格式化数字* arg: 需要格式化的数字* count: 保留的小数点位数*/function numFormat(arg, count) { if (!isNaN(arg) && count >=0) { var argStr=Number(arg).toString(); if (new RegExp(^\\d+\\.\\d{ + (count + 1) + }$).test(argStr)) { return argStr; } else { return arg.toFixed(count); } }}
numFormat.js/* * arg 需要四舍六入五留双的数 * count 需要保留的小数点位数 */ function numFormat(arg, count){ if(!isNaN(arg) && count > 0) { var argStr = Number(arg).toString(); if(new RegExp("^\\d+\\.\\d{" + (count + 1) + ",}$").test(argStr)) { //需要修约正则 var tarArg = Number(argStr.substr(0, argStr.length - (argStr.split(".")[1].length - count))); var m = Math.pow(10, count); if(new RegExp("^\\d+\\.\\d{" + count + "}[6-9]\\d*$").test(argStr) || //6入 new RegExp("^\\d+\\.\\d{" + (count - 1) + "}[1|3|5|7|9][5]$").test(argStr) || //5前为奇数 new RegExp("^\\d+\\.\\d{" + count + "}[5]\\d+$").test(argStr)) { //5后有大于0的数 return(tarArg * m + 1) / m; } return(tarArg * m) / m; } } return arg; }

