您的位置:首页 - 文章 - JavaScript, Vue, 前端 - 正文

全局封装浮点加法,减法,乘法,除法,时间戳转换成日期方法

1.在项目src下面新建utils文件夹

2.在utils下新建gfun.js文件,代码如下

export default {
	// 浮点数减法
	floatSub(arg1, arg2) {
		var r1, r2, m, n
			try {
			  r1 = arg1.toString().split('.')[1].length
			} catch (e) {
			  r1 = 0
			}
			try {
			  r2 = arg2.toString().split('.')[1].length
			} catch (e) {
			  r2 = 0
			}
			m = Math.pow(10, Math.max(r1, r2))
			n = (r1 >= r2) ? r1 : r2
		return Math.abs(((arg1 * m - arg2 * m) / m).toFixed(n))
	},
	// 浮点数加法
	floatAdd(arg1, arg2) {
		var r1, r2, m
			try {
				r1 = arg1.toString().split('.')[1].length
			} catch (e) {
				r1 = 0
			}
			try {
				r2 = arg2.toString().split('.')[1].length
			} catch (e) {
				r2 = 0
			}
			m = Math.pow(10, Math.max(r1, r2))
		return (arg1 * m + arg2 * m) / m
	},
	//浮点除法
	floatdiv(a, b) {
	    var c, d, e = 0,
	        f = 0;
	    try {
	        e = a.toString().split(".")[1].length;
	    } catch (g) {}
	    try {
	        f = b.toString().split(".")[1].length;
	    } catch (g) {}
	    return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), this.floatmul(c / d, Math.pow(10, f - e));
	},
	//浮点乘法
	floatmul(a, b) {
	    var c = 0,
	        d = a.toString(),
	        e = b.toString();
	    try {
	        c += d.split(".")[1].length;
	    } catch (f) {}
	    try {
	        c += e.split(".")[1].length;
	    } catch (f) {}
	    return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
	},
},
	// 时间戳转换成日期
	timestampToDate(DateNum, AccurateTo) {
		var date = new Date(DateNum * 1000)
		var returnValue = ''
		var Y = date.getFullYear()
		var M = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
		var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
		var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
		var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
		var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
		switch (AccurateTo) {
		  case 'Y':
			returnValue = Y
			break
		  case 'M':
			returnValue = Y + '-' + M
			break
		  case 'D':
			returnValue = Y + '-' + M + '-' + D
			break
		  case 'h':
			returnValue = Y + '-' + M + '-' + D + ' ' + h
			break
		  case 'm':
			returnValue = Y + '-' + M + '-' + D + ' ' + h + ':' + m
			break
		  case 's':
			returnValue = Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s
			break
		  default:
			returnValue = Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s
		}
		return returnValue
	},

3.在main.js中将gfun.js挂载vue实列中

import gfun from './utils/gfun' //引入gfun工具方法
Vue.prototype.gfun = gfun //挂载实例属性,这样挂载后就可以在页面中使用:this.gfun.方法名(...形参);来调用了。

4.使用方法

console.log(this.gfun.floatAdd(1.1111,2.2222)); //加法
console.log(this.gfun.floatSub(2.1111,1.2222)); //减法
console.log(this.gfun.floatmul(1.1111,2.2222)); //乘法
console.log(this.gfun.floatdiv(1.1111,2.2222)); //除法
console.log(this.gfun.timestampToDate(1582588800,"s")); //时间戳转换成日期

本文原创,作者:baiyaxiu,其版权均为品创网络所有。如需转载,请注明出处:https://www.sxpcwlkj.com/all_curd/

发表评论