JavsScript"四舍六入五留双"扩展方法
2015-09-18 13:44
141 查看
//首先修正JS四舍五入方法的误差,重新建立正确的统一的四舍五入方法
Number.prototype.myToFixed = function(s) {
return (parseInt(Number(this.toFixed(4)) * Math.pow(10, s) + 0.5) / Math.pow(10, s)).toFixed(s);
};
//"四舍六入五留双"扩展方法(保留2位小数),floatNum为数字类型
Number.exactFixed = function (floatNum) {
var floatArr = floatNum.toString().split(".")[1];
if (floatArr) {
floatArr = floatArr.split("");
if (floatArr[2] == "5" && floatArr.length > 3 && floatArr[1] % 2 == 0) {
return (Number(floatNum.myToFixed(2)) * 100 - 1) / 100;
}
return Number(floatNum.myToFixed(2));
}
return floatNum;
};
Number.prototype.myToFixed = function(s) {
return (parseInt(Number(this.toFixed(4)) * Math.pow(10, s) + 0.5) / Math.pow(10, s)).toFixed(s);
};
//"四舍六入五留双"扩展方法(保留2位小数),floatNum为数字类型
Number.exactFixed = function (floatNum) {
var floatArr = floatNum.toString().split(".")[1];
if (floatArr) {
floatArr = floatArr.split("");
if (floatArr[2] == "5" && floatArr.length > 3 && floatArr[1] % 2 == 0) {
return (Number(floatNum.myToFixed(2)) * 100 - 1) / 100;
}
return Number(floatNum.myToFixed(2));
}
return floatNum;
};
相关文章推荐
- soj.1003 hit or miss
- Java写九九乘法表
- 黑盒技术生成测试用例几种常见方法
- IT成长路<2013.9-2014.3>"而立"下篇
- 文字两端居中解决方案
- Linux系统下FTP服务器的配置
- Tcp协议理解
- SEO规则之页面Title,Meta规则
- 检查Android系统版本
- iOS 中的几个版本号问题
- C# 列出进程
- jQuery 表单验证插件——Validation(基础)
- 经济--股票周期
- Android之Notification的多种用法
- cookie的存取值方式
- 字符串匹配前序
- WebService学习笔记jaxws:endpoint与jaxws:server区别
- Scala中Iterator允许执行一次
- 开源项目Material Calendar View 学习记录 (一)
- HDU5400 Arithmetic Sequence