数字处理(金额)

/**
 * @description 处理成万元
 * @param {需要处理的金额} num:String || Number
 */
export const amountOfMoney = (num) => {
    if(typeof num !== "string"){
        num += ''
    }
    if(num && num != null && num != undefined){
        if(num.indexOf('.') != -1){
            let arrNum = num.split('.');
            if(arrNum[0].length > 4){
                let sum = parseFloat(arrNum[0])/10000 + '';
                let len = sum.indexOf('.')+3;
                let t = sum.substring(0,len);
                return t + '万'
            }else{
                return num
            }
        }else {
            if(num.length>4){
                let sum = parseFloat(num)/10000 + '';
                let len = sum.indexOf('.')+3;
                let t = sum.substring(0,len);
                return t + '万'
            }else{
                return num
            }
        }
    }
};

/**
 * @description 处理成万元 保留四位小数
 * @param {需要处理的金额} num:String || Number
 */
export const amountOfMoney2 = (num) => {
    if(typeof num !== "string"){
        num += ''
    }
    if(num && num != null && num != undefined){
        if(num.indexOf('.') !== -1){
            let arrNum = num.split('.');
            if(arrNum[0].length > 5){
                let sum = parseFloat(arrNum[0])/10000 + '';
                let len = sum.indexOf('.')+5;
                let t = sum.substring(0,len);
                return t + '万'
            }else{
                return num
            }
        }else {
            if(num.length>5){
                let sum = parseFloat(num)/10000 + '';
                let len = sum.indexOf('.')+5;
                let t = sum.substring(0,len);
                return t + '万'
            }else{
                return num
            }
        }
    }
};

/**
 * @description 截取小数位后两位
 * @param {需要处理的数值} num:String || Number
 */
export const changeTwoDecimalFloat = (floatvar) => {
    var f_x = parseFloat(floatvar);
    if (isNaN(f_x)){
        return false;
    }
    var f_x = Math.floor(f_x*100)/100;
    var s_x = f_x.toString();
    var pos_decimal = s_x.indexOf('.');
    if (pos_decimal < 0){
        pos_decimal = s_x.length;
        s_x += '.';
    }
    while (s_x.length <= pos_decimal + 2){
        s_x += '0';
    }
    // if(s_x >= 100){
    //     return 100
    // }
    return s_x;
}

/**
 * @description 防抖方法--在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时
 * @param {需要处理的方法,延迟时间}
 */
export const throttle = (fun,delay) => {
    let last,deferTimer;
    return (args) => {
        let _args = arguments;
        let now = +new Date();
        if(last && now < last + delay){
            clearTimeout(deferTimer);
            deferTimer = setTimeout(function(){
                last = now;
                fun.apply(this,_args)
            },delay)
        } else {
            last = now;
            fun.apply(this,_args)
        }
    }
}


/**
 * @description 按日处理时间为xxxx-yy-dd
 * @param {需要处理的时间} time:object
 */
export const timeProcessDay = (time) => {
    if(!time){return ""}
    let d = new Date(time);
    return d.getFullYear() + ((d.getMonth() + 1) >= 10 ? ('-' + (d.getMonth() + 1)) : ('-0' + (d.getMonth() + 1))) + "-" + (d.getDate() >= 10 ? d.getDate() : '0' + d.getDate());
}
/**
 * @description 按月处理时间为xxxx-yy
 * @param {需要处理的时间} time:object
 */
export const timeProcessMonth = (time) => {
    let d = new Date(time);
    return d.getFullYear() + ((d.getMonth() + 1) >= 10 ? ('-' + (d.getMonth() + 1)) : ('-0' + (d.getMonth() + 1)));
}
/**
 * @description 按月处理时间为yyyyMM
 * @param {需要处理的时间} time:object
 */
export const timeProcessMonth1 = (time) => {
    let d = new Date(time);
    return d.getFullYear() + ((d.getMonth() + 1) >= 10 ? (d.getMonth() + 1) : ('0' + (d.getMonth() + 1)));

}

/**
 * 格式化日期
 * @param fmt yyyy-MM-dd hh:mm:ss.S,yyyy-M-d h:m:s.S,yyyy-MM-dd,yyyy-MM
 * @param date
 * @returns {*}
 */
export const formatDate = (fmt,date) =>{
    let o = {
        "M+" : date.getMonth()+1,                 //月份
        "d+" : date.getDate(),                    //日
        "h+" : date.getHours(),                   //小时
        "m+" : date.getMinutes(),                 //分
        "s+" : date.getSeconds(),                 //秒
        "q+" : Math.floor((date.getMonth()+3)/3), //季度
        "S"  : date.getMilliseconds()             //毫秒
    };
    if(/(y+)/.test(fmt))
        fmt=fmt.replace(RegExp.$1, (date.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(let k in o)
        if(new RegExp("("+ k +")").test(fmt))
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
    return fmt;
};

/**
 * @description 处理百分比数据
 */
export const bfbDataHandle = (data) => {
    if (isNaN(data)){
        return '/';
    }else if('/' == data){
        return data;
    }else if('0' == data){
        return data;
    }else{
        return data+'%';
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值