当前位置:编程学习 > JS >>

JavaScript Math.round()的用法以及怎么保留指定小数

JavaScript 数学表达式:Math.round()
语法:
Math.round(xx) // 参数 ‘xx’ 代表一个数值  

返回值:
把给定的值四舍五入为最接近的整数
示例:
var xx= 20.5;
console.log(Math.round(xx, xx)) // 21

var xx= 20.49;
console.log(Math.round(xx)) // 20

var xx= -20.5;
var xx= -20.55;
console.log(Math.round(xx)) // -20
console.log(Math.round(xx)) // -21

描述:
如果参数的小数部分大于0.5,则舍入到相邻的绝对值更大的整数,相反则舍入到绝对值更小的整数,如果刚好等于0.5,则舍入到相邻的在正无穷 +∞ 方向的整数
利用Math.round()保留指定小数

优点:相比于使用toFixed()方法保留指定小数,使用Math.round()更能有效的达到我们的需求。而toFixed()方法则会强制在后面补0
基本用法:
var num = 6.6688.... ;

// 要对num保留一位小数怎么做呢?
var result = Math.round(num * 10) / 10
console.log(result) // 6.7

// 要对num保留两位小数又该怎么做呢?
var result2 = Math.round(num * 100) / 100
console.log(result2) // 6.67

// 同理, 要对num保留三位小数、四位小数...该怎么做呢?
......

// 如果要对num取百分比该怎么做呢?
var result3 = Math.round((num / 100)* 10000) / 100
console.log(result3 + '%') // 6.67%

身为程序员的我们大都趋向于一劳永逸,那么接下来封装一个方法来实现保留指定小数
/**
* value: 数据源
* n: 保留几位小数
*/
function retain(value, n) {
if(n === 'null' || n === 'undefined' || n === 0) return parseInt(value);
let tran = Math.round(value * Math.pow(10, n)) / Math.pow(10, n);
let tranV = tran.toString();
let newVal = tranV.indexOf('.');
if(newVal < 0) {
tranV += '.'
};
for(let i = tranV.length - tranV.indexOf('.'); i <= n; i++) {
tranV += '0';
};
return tranV
}
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,