JS-控制⼩数位数的⽅法(保留⼩数点后N位、以及⼩数取整)
开发中有时我们需要对⼩数进⾏取整,或者只保留 N 位⼩数进⾏显⽰。下⾯分别对这两种情况进⾏说明。这⾥假设我们有如下数字进⾏处理:
var num = 5/3;
console.log(num);
输出如下:
⼀、取整
1,直接取整(丢弃⼩数部分)
1var num = parseInt(5/3);  // 1
2,四舍五⼊取整
1var num = und(5/3);  // 2
3,向上取整
1var num = il(5/3);  // 2
4,向下取整
1var num = Math.floor(5/3);  // 1
⼆、保留⼩数点后N位
1,使⽤ toFixed() ⽅法
(1)⽅法介绍
toFixed() ⽅法可以将数字转换为字符串,并指定⼩数点后保留⼏位。如果⼩数实际位数不够指定的位数,不⾜的部分会补 0。所有主要浏览器都⽀持 toFixed() ⽅法。
toFixed() 使⽤的是银⾏家舍⼊规则:四舍六⼊五取偶(⼜称四舍六⼊五留双)。
银⾏家舍⼊法:
四舍六⼊五考虑,五后⾮零就进⼀,五后为零看奇偶,五前为偶应舍去,五前为奇要进⼀。
(2)使⽤样例
1 2 3 4var num1 = (5/3).toFixed(2);  // 1.67 var num2 = (4).toFixed(2);  // 4.00 var num3 = (0.015).toFixed(2);  // 0.01 var num4 = (0.025).toFixed(2);  // 0.03
2,⾃定义转换⽅法
(1)如果嫌 toFixed 这种四舍六⼊五取偶规则太奇葩。可以考虑⾃⼰实现个四舍五⼊的⽅法,下⾯⽅法转换后仍为数字类型。
第⼀个参数为待转换的数字
第⼆个参数为保留的⼩数个数
1//保留n位⼩数
2 3 4function roundFun(value, n) {
und(value*Math.pow(10,n))/Math.pow(10,n); }
(2)使⽤样例
1 2 3 4var num1 = roundFun(5/3, 2);  // 1.67 var num2 = roundFun(4, 2);  // 4
var num3 = roundFun(0.015, 2);  // 0.02 var num4 = roundFun(0.025, 2);  // 0.03
3,⾃定义格式化输出⽅法
(1)下⾯⽅法同样是指定⼩数位数进⾏四舍五⼊,不过返回的不再是数字⽽是格式化后的字符串,⼩数点后⾯不⾜的位数会⾃动补 0。⽐如数字为 4,会在 4 后⾯补上 00,变成 4.00 返回。
1 2 3 4 5 6 7 8 9 10 11 12 13//保留n位⼩数并格式化输出(不⾜的部分补0)
var fomatFloat = function(value, n) {
var f = und(value*Math.pow(10,n))/Math.pow(10,n);    var s = f.toString();
var rs = s.indexOf('.');
if(rs < 0) {
s += '.';
}
for(var i = s.length - s.indexOf('.'); i <= n; i++){
s += "0";
}
return s;
js控制滚动条}
(2)使⽤样例
1 2 3 4var num1 = fomatFloat(5/3, 2);  // 1.67 var num2 = fomatFloat(4, 2);  // 4.00 var num3 = fomatFloat(0.015, 2);  // 0.02 var num4 = fomatFloat(0.025, 2);  // 0.03

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。