阅读:4777回复:1
js 四舍五入 取小数点后两位
方法 Math.round
round() 方法可把一个数字舍入为最接近的整数。 对于 0.5,该方法将进行上舍入。 例如,3.5 将舍入为 4,而 -3.5 将舍入为 -3。 Math.round(748.58) 结果:749 Math.round(748.5867*100) 结果:74859 Math.round(748.5867*100)/100 结果:748.59 保留两位 Math.round(748.5867*1000)/1000 结果:748.587 保留三位 通用js方法: function format45(val,v2) { if (isNaN(val) || val == undefined || val == null) { return null; } return Math.round(val * v2) / v2; } format45(748.586767,10000) 结果:748.5868 相关文档:http://www.w3school.com.cn/jsref/jsref_round.asp 若用vue开发,建议放到公共方法类,固定函数名称和精确度,方便统一维护 let util = { }; util.formatZeroDecimalPlaces = function (val) { if (val == undefined || val == null || typeof (val) !== 'number') { return null; } let v2 = 1; return Math.round(val * v2) / v2; }; util.formatThreeDecimalPlaces = function (val) { if (val == undefined || val == null || typeof (val) !== 'number') { return null; } let v2 = 1000; return Math.round(val * v2) / v2;}; export default util; 四舍五入也可以通过 toFixed(2) ,但注意它的返回值是string类型,计算的时候需要转换数据类型。详情见:https://www.cnblogs.com/hao-1234-1234/p/14363641.html |
|
沙发#
发布于:2021-09-06 13:52
js判断是否为整数类型(5种方式)
方式一、使用取余运算符判断 任何整数都会被1整除,即余数是0。利用这个规则来判断是否是整数。 function isInteger(obj) { return obj%1 === 0 } isInteger(3) // true isInteger(3.3) // false isInteger('') // true isInteger('3') // true isInteger(true) // true isInteger([]) // true 对于空字符串、字符串类型数字、布尔true、空数组都返回了true。对这些类型的内部转换细节感兴趣的请参考:JavaScript中奇葩的假值 因此,需要先判断下对象是否是数字,比如加一个typeof function isInteger(obj) { return typeof obj === 'number' && obj%1 === 0 } isInteger('') // false isInteger('3') // false isInteger(true) // false isInteger([]) // false 方式二、使用Math.round、Math.ceil、Math.floor判断 整数取整后还是等于自己。利用这个特性来判断是否是整数,Math.floor示例,如下 function isInteger(obj) { return Math.floor(obj) === obj } isInteger(3) // true isInteger(3.3) // false isInteger('') // false isInteger('3') // false isInteger(true) // false isInteger([]) // false 方式三、通过parseInt判断 function isInteger(obj) { return parseInt(obj, 10) === obj } isInteger(3) // true isInteger(3.3) // false isInteger('') // false isInteger('3') // false isInteger(true) // false isInteger([]) // false、 //很不错,但也有一个缺点 isInteger(1000000000000000000000) // false 原因是parseInt在解析整数之前强迫将第一个参数解析成字符串。这种方法将数字转换成整型不是一个好的选择。 方式四、通过位运算判断 function isInteger(obj) { return (obj | 0) === obj } isInteger(3) // true isInteger(3.3) // false isInteger('') // false isInteger('3') // false isInteger(true) // false isInteger([]) // false //这个函数很不错,效率还很高。但有个缺陷,上文提到过,位运算只能处理32位以内的数字,对于超过32位的无能为力 isInteger(Math.pow(2, 32)) // 32位以上的数字返回false了 方式五、ES6提供了Number.isInteger Number.isInteger(3) // true Number.isInteger(3.1) // false Number.isInteger('') // false Number.isInteger('3') // false Number.isInteger(true) // false Number.isInteger([]) // false 目前,最新的Firefox和Chrome已经支持。 转自:http://www.jb51.net/article/75813.htm |
|