摘要:线看效果保留了一个无效的位,有时候为了数据整齐化,有必要加上这个。自己实现了一个解决这个问题的方法默认保留小数如果不是数字,直接返回如果不是小数,返回判断保留位的下一位是否大于,四舍五入移除多余的
线看效果:
1.1.toFixed(2);// 1.10
保留了一个无效的0位,有时候为了数据整齐化,有必要加上这个0。如果不想要呢?toFixed有办法解决吗?
比如:保留两位小数
1.001; // 我想要1,而不是1.00
这种情况toFixed是做不到的
搜索了一下,暂时没有发现有这样的方法,哪位朋友找到@我一下。
自己实现了一个解决这个问题的方法:
Number.prototype.toFixedNo = function(fixed) {
var num = this;
// 默认保留小数
var fixed = fixed || 0;
// 如果fixed不是数字,直接返回
if (isNaN(fixed)) {
return num.toString();
} else {
var numStr = num.toString();
// 如果num不是小数,返回
if (numStr.indexOf(".") < 0 || numStr.indexOf(".") == numStr.length - 1) {
return parseInt(num);
} else if (fixed == 0) {
var arr = numStr.split(".");
var integer = arr[0];
var decimals = arr[1];
if (parseInt(decimals) != 0) {
if (decimals.substr(0, 1) >= 5) {
integer = parseInt(integer) + 1;
}
}
return integer;
} else {
var arr = numStr.split(".");
var integer = arr[0];
var decimals = arr[1];
if (fixed < decimals.length) {
var fixedNo = decimals.substr(0, fixed);
// 判断保留位的下一位是否大于5,四舍五入
if (decimals.substr(fixed, 1) >= 5) {
fixedNo = parseInt(fixedNo) + 1;
} else {
if (parseInt(fixedNo) == 0) {
return integer;
}
// 移除多余的0
fixedNo = fixedNo.replace(/0+$/, "");
}
decimals = fixedNo;
}
return integer + "." + decimals;
}
}
}
test:
1.04.toFixedNo(1);//1, 1.05.toFixedNo(1);//1.1 1.04.toFixedNo();//1 1.5.toFixedNo();//2
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/89766.html
摘要:按照这个说法,在还是行不通的,应该得到,得到没问题,有些摸不到边了,所以自定义一下这个方法以便备用总结日益强大,各种语言逐步向它靠近。开发中一般时间很紧迫,好多东西都没工夫想,所以还有很多要优化的地方,有时候,放慢脚步,可能也是一种进步吧 Jquery再熟悉不过,其中的$.ajax封装也不陌生,其中 $.ajax({ url:url, type:GET, da...
摘要:我们可以利用该函数限定返回数值的位数,从而达到提高精度的效果。 一、问题的引入 今天在看基础js文章的时候发现了一个浮点数的精度问题,当打印小数相加的时候有时候会出现数值不准确的情况,如果是在做一些需要数据精度要求较高的工作的时候稍有不慎就会出现问题 console.log(0.1+0.1) //0.2 console.log(0.1+0.2) //0.3000000000000000...
摘要:前言最近,朋友问了我这样一个问题在中的运算结果,为什么是这样的虽然我告诉他说,这是由于浮点数精度问题导致的。由于可以用阶码移动小数点,因此称为浮点数。它的实现遵循标准,使用位精度来表示浮点数。 showImg(https://segmentfault.com/img/remote/1460000018981071); 前言 最近,朋友 L 问了我这样一个问题:在 chrome 中的运算...
阅读 3986·2023-04-25 16:35
阅读 1024·2021-10-11 11:09
阅读 6978·2021-09-22 15:11
阅读 3651·2019-08-30 14:03
阅读 2861·2019-08-29 16:54
阅读 3606·2019-08-29 16:34
阅读 3346·2019-08-29 12:18
阅读 2558·2019-08-28 18:31