C语言实现贷款计算器

news2024/12/28 22:58:42

等额本金,等额本息数学推导:贷款 买房,利息怎么算?不要被忽悠了!李永乐老师讲等额本金和等额本息

一个心血来潮的研究,避免以后买房被坑。

捣鼓了半天才发现原来支付宝的那个利率是年利率不是月利率,坑了我半天。。。

代码

#include <stdio.h>
#include <math.h>
/**
 * @description: 等额本金
 * @param {double} totalPrincipal 贷款总额
 * @param {int} years  按揭年数
 * @param {double} annualInterestRate 年利率
 * @return {*}
 */
double EqualPrincipalPayment(double totalPrincipal, int years, double annualInterestRate)
{   
    annualInterestRate = annualInterestRate / 100.0;
    int period = years * 12;
    double monthlyInterestRate = annualInterestRate / 12.0;
    double monthlyInterestPayment = totalPrincipal * annualInterestRate;
    double monthlyPrincicalPayment = totalPrincipal / period;
    double remainingPrincical = totalPrincipal;

    printf("贷款方式:等额本金\n");
    printf("贷款总额: %.02f\n", totalPrincipal);
    printf("年利率: %.02f%%\n", annualInterestRate * 100);
    printf("贷款期限: %d 年\n", years);
    
    int count = 1;
    do
    {
        monthlyInterestPayment = remainingPrincical * monthlyInterestRate;
        remainingPrincical -= monthlyPrincicalPayment;
        double monthlyPayment = monthlyPrincicalPayment + monthlyInterestPayment;
        printf("期数: %6d | 剩余本金: %10.02f | 月供: %10.02f | 月供本金: %10.02f | 月供利息: %10.02f\n", count, remainingPrincical, monthlyPayment, monthlyPrincicalPayment, monthlyInterestPayment);
        count++;
    } while (count <= period);
}

// 等额本息
/**
 * @description:
 * @param {double} principal 贷款总额
 * @param {int}  years 按揭年数
 * @param {double} annualInterestRate 年利率
 * @return {*}
 */
void EqualMonthlyPayment(double totalPrincipal, int years, double annualInterestRate) {
    annualInterestRate = annualInterestRate / 100.0;
    int period = years * 12;
    double monthlyInterestRate = annualInterestRate / 12.0;
    //月付推导过程可见:https://www.jianshu.com/p/168ffe04ac20
    double monthlyPayment = totalPrincipal * (monthlyInterestRate * pow(1 + monthlyInterestRate, period)) / (pow(1 + monthlyInterestRate, period) - 1);
    
    printf("贷款方式:等额本息\n");
    printf("贷款总额: %.02f\n", totalPrincipal);
    printf("年利率: %.02f%%\n", annualInterestRate * 100);
    printf("贷款期限: %d 年\n", years);
    printf("每月还款金额: %.02f\n", monthlyPayment);
    
    double remainingPrincipal = totalPrincipal;
    int count = 1;
    do {
        double interestPayment = remainingPrincipal * monthlyInterestRate;
        double principalPayment = monthlyPayment - interestPayment;
        remainingPrincipal -= principalPayment;
        
        printf("期数: %6d | 剩余本金: %10.02f | 月供: %10.02f | 月供本金: %10.02f | 月供利息: %10.02f\n", count, remainingPrincipal, monthlyPayment, principalPayment, interestPayment);
        
        count++;
    } while (count <= period);
}

int main()
{
    EqualPrincipalPayment(100000, 10, 5.0);
    EqualMonthlyPayment(100000, 10, 5.0);
}

测试

程序输出:

贷款方式:等额本金
贷款总额: 100000.00
年利率: 5.00%
贷款期限: 1 年
期数:      1 | 剩余本金:   91666.67 | 月供:    8750.00 | 月供本金:    8333.33 | 月供利息:     416.67
期数:      2 | 剩余本金:   83333.33 | 月供:    8715.28 | 月供本金:    8333.33 | 月供利息:     381.94
期数:      3 | 剩余本金:   75000.00 | 月供:    8680.56 | 月供本金:    8333.33 | 月供利息:     347.22
期数:      4 | 剩余本金:   66666.67 | 月供:    8645.83 | 月供本金:    8333.33 | 月供利息:     312.50
期数:      5 | 剩余本金:   58333.33 | 月供:    8611.11 | 月供本金:    8333.33 | 月供利息:     277.78
期数:      6 | 剩余本金:   50000.00 | 月供:    8576.39 | 月供本金:    8333.33 | 月供利息:     243.06
期数:      7 | 剩余本金:   41666.67 | 月供:    8541.67 | 月供本金:    8333.33 | 月供利息:     208.33
期数:      8 | 剩余本金:   33333.33 | 月供:    8506.94 | 月供本金:    8333.33 | 月供利息:     173.61
期数:      9 | 剩余本金:   25000.00 | 月供:    8472.22 | 月供本金:    8333.33 | 月供利息:     138.89
期数:     10 | 剩余本金:   16666.67 | 月供:    8437.50 | 月供本金:    8333.33 | 月供利息:     104.17
期数:     11 | 剩余本金:    8333.33 | 月供:    8402.78 | 月供本金:    8333.33 | 月供利息:      69.44
期数:     12 | 剩余本金:       0.00 | 月供:    8368.06 | 月供本金:    8333.33 | 月供利息:      34.72
贷款方式:等额本息
贷款总额: 100000.00
年利率: 5.00%
贷款期限: 1 年
每月还款金额: 8560.75
期数:      1 | 剩余本金:   91855.92 | 月供:    8560.75 | 月供本金:    8144.08 | 月供利息:     416.67
期数:      2 | 剩余本金:   83677.90 | 月供:    8560.75 | 月供本金:    8178.02 | 月供利息:     382.73
期数:      3 | 剩余本金:   75465.81 | 月供:    8560.75 | 月供本金:    8212.09 | 月供利息:     348.66
期数:      4 | 剩余本金:   67219.51 | 月供:    8560.75 | 月供本金:    8246.31 | 月供利息:     314.44
期数:      5 | 剩余本金:   58938.84 | 月供:    8560.75 | 月供本金:    8280.67 | 月供利息:     280.08
期数:      6 | 剩余本金:   50623.67 | 月供:    8560.75 | 月供本金:    8315.17 | 月供利息:     245.58
期数:      7 | 剩余本金:   42273.85 | 月供:    8560.75 | 月供本金:    8349.82 | 月供利息:     210.93
期数:      8 | 剩余本金:   33889.25 | 月供:    8560.75 | 月供本金:    8384.61 | 月供利息:     176.14
期数:      9 | 剩余本金:   25469.70 | 月供:    8560.75 | 月供本金:    8419.54 | 月供利息:     141.21
期数:     10 | 剩余本金:   17015.08 | 月供:    8560.75 | 月供本金:    8454.62 | 月供利息:     106.12
期数:     11 | 剩余本金:    8525.23 | 月供:    8560.75 | 月供本金:    8489.85 | 月供利息:      70.90
期数:     12 | 剩余本金:      -0.00 | 月供:    8560.75 | 月供本金:    8525.23 | 月供利息:      35.52

等额本金:

image-20230819180750221

等额本息:

image-20230819180809224

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/899838.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

猿人学刷题系列(第一届比赛)——第四题

题目&#xff1a;采集这5页的全部数字&#xff0c;计算加和并提交结果 地址&#xff1a;https://match.yuanrenxue.cn/match/4 页面分析 首先打开开发者工具然后刷新界面进行抓包。 通过返回的数据来看&#xff0c;我们需要的数据极有可能是位于info键对应的值中&#xff0c;…

Nginx介绍(Nginx是什么?能干什么?)

Nginx的产生 没有听过Nginx&#xff1f;那么一定听过它的"同行"Apache吧&#xff01;Nginx同Apache一样都是一种WEB服务器&#xff0c;基于REST架构风格&#xff0c;以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator…

删除有序链表中重复的元素-II(链表)

乌&#xff01;蒙&#xff01;山&#xff01;连&#xff01;着&#xff01;山&#xff01;外&#xff01;山&#xff01; 题目&#xff1a; 思路&#xff1a; 双指针&#xff0c;slow和fast&#xff0c;并且增加标记flag初始为1。 如果slow指向节点值等于fast指向节点值&…

JAVA结合AE(Adobe After Effects)AE模板文件解析生成视频实现类似于逗拍(视频DIY)的核心功能

最近看抖音上有很多各种视频表白生成的直播而且直播间人很多&#xff0c;于是就思考如何实现的视频内的文字图片内容替换的呢 &#xff0c;答案需要用到类似与逗拍一样的视频DIY的功能&#xff0c;苦于我是java&#xff0c;百度了半天没有办法和思路&#xff0c;总不能为了一个…

Hadoop小结(上)

最近在学大模型的分布式训练和存储&#xff0c;自己的分布式相关基础比较薄弱&#xff0c;基于深度学习的一切架构皆来源于传统&#xff0c;我总结了之前大数据的分布式解决方案即Hadoop&#xff1a; Why Hadoop Hadoop 的作用非常简单&#xff0c;就是在多计算机集群环境中营…

typescript报错:‘name‘ was also declared here

问题再现 用 Typescript 时&#xff0c; 遇到一个声明常量 name 的报错。代码如下&#xff1a; let name:string"zhangsan"; let num:number1001;执行编译时报错&#xff1a; 原因 在默认状态下&#xff0c;typescript 将 DOM typings 作为全局的运行环境&#…

windows vscode使用opencv

1.windows vscode使用opencv 参考&#xff1a;https://blog.csdn.net/zhaiax672/article/details/88971248 https://zhuanlan.zhihu.com/p/402378383 https://blog.csdn.net/weixin_39488566/article/details/121297536 g -g .\hello_opencv.cpp -stdc14 -I E:\C-software\…

测试工具coverage的高阶使用

在文章Python之单元测试使用的一点心得中&#xff0c;笔者介绍了自己在使用Python测试工具coverge的一点心得&#xff0c;包括&#xff1a; 使用coverage模块计算代码测试覆盖率使用coverage api计算代码测试覆盖率coverage配置文件的使用coverage badge的生成 本文在此基础上…

Jmeter生成可视化的HTML测试报告

Jmeter也是可以生成测试报告的。 性能测试工具Jmeter由于其体积小、使用方便、学习成本低等原因&#xff0c;在现在的性能测试过程中&#xff0c;使用率越来越高&#xff0c;但其本身也有一定的缺点&#xff0c;比如提供的测试结果可视化做的很一般。 不过从3.0版本开始&…

【流程引擎】---springboot+camunda案例之费用审批流程

目录 一、案例说明二、案例说明2.1、主要代码实现2.2、案例测试分析过程2.3、总结一、案例说明 上篇文章介绍了springboot简单集成Camunda,后续以具体案例来介绍Camunda使用。 下面介绍一种简单的“费用审批流程”。该流程会串行的经历三层组织审核,一直到流程结束。 其中,…

xollam后缀勒索病毒|勒索病毒解密恢复|xollam勒索病毒专杀|勒索病毒解密|数据库恢复

目录&#xff1a; xollam勒索病毒介绍感染xollam勒索病毒后的表现xollam勒索病毒的感染形式如何恢复.xollam后缀勒索病毒xollam勒索病毒日常防护建议 简介&#xff1a;案例 山东某有限公司的办公系统&#xff0c;由于工作人员在某破解版软件平台下载软件时&#xff0c;不小心点…

PaddleRS 1.0.0版本安装

PaddleRS 1.0.0版本安装 PaddleRS是百度飞桨、遥感科研院所及相关高校共同开发的基于飞桨的遥感影像智能解译开发套件&#xff0c; 支持图像分割、目标检测、场景分类、变化检测、图像复原等常见遥感任务。 PaddleRS致力于帮助遥感领域科研从业者快速完成算法的研发、验证和调…

基于深度学习的铁路异物侵限检测算法研究_整体认知感觉欠点意思,但是有一个新的变形卷积-Octave 卷积

相比于其他的交通运输方式&#xff0c;铁路运输具有准时性高、连续性强、速度快、运输量大、运输成本低以及安全可靠等优点。同时由于国家高速铁路网络建设的不断推进&#xff0c;铁路运输逐渐成为我国客运与货运的主要运输方式。虽然铁路运输为人们出行和货物运输带来的极大的…

Vulnhub系列靶机 Hackadmeic.RTB1

系列&#xff1a;Hackademic&#xff08;此系列共2台&#xff09; 难度&#xff1a;初级 信息收集 主机发现 netdiscover -r 192.168.80.0/24端口扫描 nmap -A -p- 192.168.80.143访问80端口 使用指纹识别插件查看是WordPress 根据首页显示的内容&#xff0c;点击target 点击…

【前端面试】中大文件上传/下载:中等文件代理服务器放行+大文件切片传输+并发请求+localstorage实现断点续传

目录 中等文件代理服务器放行&#xff1a;10MB为单位 proxy nginx 大文件切片&#xff1a;100MB为单位 断点&#xff1a;存储切片hash 前端方案A localstorage 后端方案B 服务端 上传 前端 后端 下载 前端 后端 多个大文件传输&#xff1a;spark-md5 哈希碰撞…

002-Nacos 简单集群模式源码解析

目录 介绍架构分析添加实例-同步信息给其他集群服务添加实例-提交同步任务添加实例-执行同步任务实例健康状态监控 介绍 Nacos 启动默认会使用集群模式&#xff0c;也就是没有带有-m standalone 的时候就是用的简单集群模式 另外我们再分析单机模式注册实例的时候最后一部分是把…

【王道-绪论】

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.1 操作系统的概念功能和定义一、操作系统的概念和定义二、操作系统的功能和目标1、资源的管理者2、向用户提供服务2.1图形化用户接口2.2联机命令接口2.3脱机命令接口2.4程序接口 3、对硬件机器的拓展 三、总结 No.2 操作系…

Spring Cloud 系列之OpenFeign:(7)链路追踪zipkin

传送门 Spring Cloud Alibaba系列之nacos&#xff1a;(1)安装 Spring Cloud Alibaba系列之nacos&#xff1a;(2)单机模式支持mysql Spring Cloud Alibaba系列之nacos&#xff1a;(3)服务注册发现 Spring Cloud 系列之OpenFeign&#xff1a;(4)集成OpenFeign Spring Cloud …

第三章内存管理

1.内存的基础知识 内存可存放数据。程序执行前需要先放到内存中才能被CPU处理――缓和CPU与硬盘之间的速度矛盾 指令中的地址参数直接给出了变量x的实际存放地址(物理地址) 1&#xff0e;绝对装入 绝对装入:在编译时&#xff0c;如果知道程序将放到内存中的哪个位置,编译程序将…

springboot+Vue--打基础升级--(二)写个主菜单导航界面

1. 华为OD机考题 答案 2023华为OD统一考试&#xff08;AB卷&#xff09;题库清单-带答案&#xff08;持续更新&#xff09; 2023年华为OD真题机考题库大全-带答案&#xff08;持续更新&#xff09; 2. 面试题 一手真实java面试题&#xff1a;2023年各大公司java面试真题汇总--…