九阁网趣 九阁网趣
PHPText.Net > 文章 > 技术 > WEB开发

PHP版 P2P借贷公式算法函数大全 平息/等额本金/等额本息/先息后本/混合型

2015/03/03 00:37
6063人阅读
最近在搞P2P项目,这块算是一个重点分享出来给大家啦~~

P2P这2年的兴起的行业,互联网借贷越来越多,我们不谈保障吧。这个东西我自己看起来都有点骗子的感觉,不过什么东西都需要时间考验,有真的自然也有假的。不过从技术来说,都一样的。真假都要做出来,才能忽悠来客户嘛。下面咱先来看下 平息/等额本金/等额本息/先息后本/混合型 这个5个公式的讲解。我最开始就自己摸索了平息,可其余都是。。。。。

小额贷款公司的叫平息

1种计算利息方式是平息,平息:还款金额减少,利息不减少。比如贷款10万12个月期还款,利息1%每月,管理费1.3%每月,这样月管理费和利息是10万*(1%+1.3%)=2300.00,还款本金10万/12=8333.33,月供金额是8333.33+2300.00=10633.33月


如果有放款手续费2个点10万*2%=2000.00,年总费用为2300.00*12+2000.00=27800.00

总费用 贷款额度*月管理费*12+一次性收费

月供   贷款额度*月管理费*12+贷款额度/12


等额本金

月还本金相同,月还利息相应减少。比如你做房贷20年240月期供房,贷款本金100万,按等额本金方式还款,100万/240个月=4166.67月本金,月利息是变动的,每个月的还款金额都不一样,但是下个月的月供比上上个月少


就里面那个按月递减的叫等额本金,最节约钱的一种还款方式,头大尾小,月月还款不一样


每月还本付息金额=(本金/还款月数)+ (本金-累计已还本金)×月利率

每月本金=总本金/还款月数

每月利息=(本金-累计已还本金)×月利率

还款总利息=(还款月数+1)×贷款额×月利率/2

还款总额=(还款月数+1)×贷款额×月利率/2+ 贷款额


等额本息

每个月供金额一样,但是本金和利息是此消彼长,每个月本金增加,利息减少。


月还款额=本金*月利率*(1+月利率)^n/[(1+月利率)^n-1] 

式中:月利率=年利率/12,n表示贷款月数,^n表示n次方,如^360,表示360次方(贷款30年、360月)。注意:计算(1+月利率)^n-1时,要先将小括号内的算出来,乘方后再减1。

http://baike.baidu.com/link?url=j0JDdJKSslguxyJdyEeba8JezEe9ldRPODzlSOJBU9FlSNcARwcec5qgK6ULXBpn_RMZNOo6dR47FqO61m5Gd_


先息后本

即只还利息,不还本金, 这个好算,比如贷款100万,年息9分,那月息7.5厘,100万*0.75%=7500元,7500.00*12=9万元,到一年后本金还是100万没还,还的9万元全是利息


混合型

利息加管理费,利息计算等额本息方式的,即每个月还款本金减少利息相应减少,但是管理费不减少。比如10万贷款12月期,年利息9分月息7.5厘,管理费0.5%即月供等于8745.15+500=9245.15  


这个东西打开看看理解理解就好了,深入会晕死的。公式大多也是百度来或者网上找到的可能不准,不过我觉得应该是这样,不对的可以给我留言纠正呀。下面直接来上代码。

//计算月管理费、月利息 还款总额
//$mode       计算方式 PX=平息|DEBJ=等额本金|DEBX=等额本息|XXHB=先息后本
//$money      贷款额度
//$mon        贷款期限
//$rate       月利率
//$mrate      月管理费
//$only_mrate 一次性费用比率
//$bond_rate  担保金比率
function calcfee($mode, $money, $mon, $rate=0, $mrate=0, $only_mrate=0, $bond_rate=0){
    if(!$mode || !$money || !$mon) return false;
    $result = array(
            'mode'=>$mode,
            'money'=>$money,
            'mon'=>$mon,
            'rate'=>$rate,
            'mrate'=>$mrate,
            'only_mrate'=>$only_mrate,
            'bond_rate'=>$bond_rate,
            'rmmoney'=>0, //每月还款本金
            'rmrate'=>0,  //每月还款利息
            'rmjrate'=>0,  //每月递进金额
            'rmmrate'=>0, //每月管理费
            'rmsum'=>0,   //每月还款总额
            'rsrate'=>0,  //总还款利息
            'rssum'=>0    //总还款额度
        );

    switch($mode){

        //平息
        case 'PX':
            $result['rmmoney'] = round($money/$mon,2);
            $result['rmrate']  = round($money*($rate/100),2);
            $result['rmmrate'] = round($money*($mrate/100),2);
            $result['rmsum']   = round($result['rmmoney']+$result['rmrate']+$result['rmmrate'],2);
            $result['rsrate']  = round(($result['rmrate']+$result['rmmrate'])*$mon,2);
            $result['rssum']   = round(($result['rmsum']*$mon)+($money*($only_mrate/100)),2);
            break;

        //等额本金
        case 'DEBJ':
            $result['rmmoney'] = round($money/$mon,2);
            $result['rmrate']  = round($money*($rate/100/12),2);
            $result['rmjrate'] = round(round($money*($rate/100/12),2)-round(($money-$result['rmmoney'])*($rate/100/12),2),2);
            $result['rmmrate'] = round($money*($mrate/100),2);
            $result['rmsum']   = round($result['rmmoney']+$result['rmrate'],2);
            $result['rsrate']  = round((($mon+1)*$money*($rate/100/12)/2),2);
            $result['rssum']   = round($result['rsrate']+$money,2);
            break;

        //等额本息
        case 'DEBX':
            $result['rmmoney'] = round($money/$mon,2);
            $result['rmrate']  = round($money*($rate/100/12),2);
            $result['rmmrate'] = round($money*($mrate/100/12),2);
            $result['rmsum']   = round($money*($rate/100/12)*pow((1+($rate/100/12)),$mon)/(pow((1+($rate/100/12)),$mon)-1),2);
            $result['rsrate']  = round(($mon*$result['rmsum'])-$money,2);
            $result['rssum']   = round(($mon*$result['rmsum']),2);
            break;

        //先息后本
        case 'XXHB':
            $result['rmmoney'] = round($money/$mon,2);
            $result['rmrate']  = round($money*($rate/100),2);
            $result['rmmrate'] = round($money*($mrate/100),2);
            $result['rmsum']   = $result['rmrate'];
            $result['rsrate']  = round($result['rmrate']*$mon,2);
            $result['rssum']   = round(($result['rmrate']*$mon)+$money,2);
            break;

        //不存在公式
        default:
            return false;
            break;

    }
    return $result;
}


代码是PHP的,基本上注释都写的还算清楚,你可以参考上面的描述对比算法来看。具体对不对,还没经过专业的验证。不过公式应该没错,这块分享出来希望给接下来做P2P的各位有些帮助啦~~

同类推荐

百度地图WEB API报错:APP Referer校验失败百度地图WEB API报错:APP Referer校验失败
微信支付 官方SDK报错 Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘微信支付 官方SDK报错 Fatal error: Uncaught exception ‘WxPayException‘ with message ‘curl出错,错误码:60‘
关于ios/iphone/ipad 网页不能自动播放视频、音频的解决方案 mediaPlaybackRequiresUserAction  和 解决iphone/ipad视频播放单独弹出问题webkit-playsinline/allowsInlineMediaPlayback关于ios/iphone/ipad 网页不能自动播放视频、音频的解决方案 mediaPlaybackRequiresUserAction 和 解决iphone/ipad视频播放单独弹出问题webkit-playsinline/allowsInlineMediaPlayback
web app iphone4 iphone5 iphone6 响应式布局 适配代码web app iphone4 iphone5 iphone6 响应式布局 适配代码
PHP 判断是蜘蛛(搜索引擎)来访PHP 判断是蜘蛛(搜索引擎)来访
PHP版 P2P借贷公式算法函数大全 平息/等额本金/等额本息/先息后本/混合型PHP版 P2P借贷公式算法函数大全 平息/等额本金/等额本息/先息后本/混合型
iPhone iPad HTML5网页不能自动播放AUDIO音频、VIDEO视频 原因iPhone iPad HTML5网页不能自动播放AUDIO音频、VIDEO视频 原因
jQuery获得页面元素(div、table等)页面中的相对位置(position)和绝对位置(offset)jQuery获得页面元素(div、table等)页面中的相对位置(position)和绝对位置(offset)
ECSHOP 订单状态、支付状态、配送状态 相关程序文件、变量、常量 整理说明ECSHOP 订单状态、支付状态、配送状态 相关程序文件、变量、常量 整理说明
Discuz 用户整合 免激活 同步登录 解决方法Discuz 用户整合 免激活 同步登录 解决方法