当前位置:首页 > Linux > 正文内容

shell编程制作贷款计算器

彭淇3年前 (2017-11-14)Linux33852

贷款有两种还款的方式:等额本金法和等额本息法

简单说明一下等额本息法与等额本金法的主要区别:

等额本息法的特点是:每月的还款额相同,在月供中“本金与利息”的分配比例中,前半段时期所还的利息比例大、本金比例小,还款期限过半后逐步转为本金比例大、利息比例小。所支出的总利息比等额本金法多,而且贷款期限越长,利息相差越大。

等额本金法的特点是:每月的还款额不同,它是将贷款额按还款的总月数均分(等额本金),再加上上期剩余本金的月利息,形成一个月还款额,所以等额本金法第一个月的还款额最多 ,尔后逐月减少,越还越少。所支出的总利息比等额本息法少。

两种还款方式的比较不是我们今天的讨论范围,我们的任务就是做一个贷款计算器。

其中:等额本息每月还款额的计算公式是:

[贷款本金×月利率×(1+月利率)^还款月数]÷[(1+月利率)^还款月数-1]

用Linux系统下的shell编程语言,编写的贷款计算器代码如下:

#!/bin/bash
# Author: pengqi
# Date & Time: 2017-11-13 19:04:01
# Description: 贷款计算器.

read -p "请输入贷款总额(单位:万元):" dkzewy
read -p "请输入贷款年利率(如年利率为6.5%,直接输入6.5):" dknll
read -p "请输入贷款年限(单位:年):" dknx
echo "贷款计算方式:"
echo "1)等额本金计算法"
echo "2)等额本息计算法"
read -p "请选择贷款方式(1|2)" dkfs
dkze=`echo "scale=2;$dkzewy*10000 " | bc -l`
dkll=`echo "scale=6;$dknll/100 " | bc -l`
dkyll=`echo "scale=6;$dkll/12 " | bc -l`
dkqc=$[$dknx*12]

echo "期次 本月还款额 本月利息 未还款额"
debjjsf()
{
    yhbj=`echo "scale=2;($dkze/$dkqc)/1 " | bc -l`
    whbj=$dkze
    for((i=1;i<=$dkqc;i++))
    do
        bylx=`echo "scale=2;($whbj*$dkyll)/1 " | bc -l`
        bybx=`echo "scale=2;($yhbj+$bylx)/1 " | bc -l`
        yhke=`echo "scale=2;($yhbj*$i)/1 " | bc -l`
        whbj=`echo "$dkze-$yhke " | bc -l`
        if [ $i -eq $dkqc ]
        then
            yhbj=`echo "scale=2;($yhbj+$whbj)/1 " | bc -l`
            whbj="0.00"
            bybx=`echo "scale=2;($yhbj+$bylx)/1 " | bc -l`
        fi
        echo "$i $bybx $bylx $whbj"
    done
}

debxjsf()
{
    bybx=`echo "scale=2;(($dkze*$dkyll*((1+$dkyll)^$dkqc))/(((1+$dkyll)^$dkqc)-1))/1 " | bc -l`
    whbj=$dkze
    for((i=1;i<=$dkqc;i++))
    do
        bylx=`echo "scale=2;($whbj*$dkyll)/1 " | bc -l`
        yhbj=`echo "scale=2;($bybx-$bylx)/1 " | bc -l`
        whbj=`echo "scale=2;($whbj-$yhbj)/1 " | bc -l`
        if [ $i -eq $dkqc ]
        then
            bybx=`echo "scale=2;($yhbj+$whbj)/1 " | bc -l`
            whbj="0.00"
        fi
        echo "$i $bybx $bylx $whbj"
    done
}

case $dkfs in
    1) debjjsf
       ;;
    2) debxjsf
       ;;
    *) exit 1
       ;;
esac

效果图如下:

shell编程制作贷款计算器  电脑 系统 命令 Linux 第1张

扫描二维码至手机访问

扫描二维码推送至手机端访问。

版权声明:本文由淇云博客发布,如需转载请注明出处。

转载请注明出处:https://www.pengqi.club/blog/190.html

分享给朋友:

相关文章

2020全新Web服务器教程由浅入深

2020全新Web服务器教程由浅入深

教程介绍学完掌握知识点:掌握Http协议原理;Nginx虚拟主机的配置以及应用;Nginx地址重定向、负载均衡、反向代理的配置应用;运用Nginx进行流量限制和访问控制;掌握Jvm虚拟机原理知识和相关...

Linux常用命令之sed练习

sed命令常用的差不多讲完了,只要您多加练习就能熟悉它了,为了能让你更加牢固的掌握sed的应用,留几个练习题,希望你能认真完成!1 把/etc/passwd 复制到/root/test.txt,用se...

用过vim的加密功能吗?

用过vim的加密功能吗?

一、利用vim加密优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了;缺点:很明显让别人知道加密了,容易让别人把加密的文件破坏掉,包括内容破坏和删除;vim编辑器相信大家都很熟悉了吧...

阿里云服务器使用frp做内网穿透服务端及客户端配置教程

阿里云服务器使用frp做内网穿透服务端及客户端配置教程

Frp做内网映射部署简单,而且端口可以完全自定义。之前使用花生壳和natapp均无法自定义自己需要的端口,是时候自己部署了。环境介绍服务端环境:阿里云ECS centos7 64位系统win...

Linux常用命令之route

Linux系统的route命令用于显示和设置IP路由表。如果想让机器访问Internet,那么就需要将局域网中的网关ip地址设置为Linux机器的默认路由。可以直接执行route命令来临时添加,也可以...

Linux中DHCP服务器搭建方法

Linux中DHCP服务器搭建方法

DHCP服务概述:名称:DHCP  - Dynamic Host Configuration Protocol  动态主机配置协议功能:DHCP(Dynamic Host Conf...

评论列表

彭淇
彭淇
3年前 (2017-12-11)

测试

素拓
素拓
3年前 (2017-12-09)

可以的

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。