C语言实现贷款计算器

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

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

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

代码

#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/168ffe04ac20double 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.mzph.cn/news/43943.shtml

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

相关文章

驱动开发——字符设备

字符设备 Linux 将系统设备分为&#xff1a;字符设备、块设备、网络设备。工作原理 字符设备是 Linux 驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个一个字节&#xff0c; 按照字节流进行读写操作的设备&#xff0c;读写数据是分先后顺序的。在Linux的世界里面一切…

如何修复损坏的DOC和DOCX格式Word文件?

我们日常办公中&#xff0c;经常用到Word文档。但是有时会遇到word文件损坏、无法打开的情况。这时该怎么办&#xff1f;接着往下看&#xff0c;小编在这里就给大家带来最简单的Word文件修复方法&#xff01; 很多时候DOC和DOCX Word文件会无缘无故的损坏无法打开&#xff0c;一…

AI 实力:利用 Docker 简化机器学习应用程序的部署和可扩展性

利用 Docker 的强大功能&#xff1a;简化部署解决方案、确保可扩展性并简化机器学习模型的 CI/CD 流程。 近年来&#xff0c;机器学习 (ML) 出现了爆炸性增长&#xff0c;导致对健壮、可扩展且高效的部署方法的需求不断增加。由于训练和服务环境之间的差异或扩展的困难等因素&a…

【福建事业单位-综合基础知识】03行政法

【福建事业单位-综合基础知识】03行政法 1.行政法概述&#xff08;原则重点&#xff09;行政主体范围 行政行为总结 二.行政处罚2.1行政处罚的种类总结 行政法框架 1.行政法概述&#xff08;原则重点&#xff09; 行政法的首要原则是合法&#xff1b;自由裁量——合理行政&…

SSM——用户、角色、权限操作

1. 数据库与表结构 1.1 用户表 1.1.1 用户表信息描述 users 1.1.2 sql语句 CREATE TABLE users( id varchar2(32) default SYS_GUID() PRIMARY KEY, email VARCHAR2(50) UNIQUE NOT NULL, username VARCHAR2(50), PASSWORD VARCHAR2(50), phoneNum VARCHAR2(20), STATUS INT…

i18n 配置vue项目中英文语言包(中英文转化)

一、实现效果 二、下载插件创建文件夹 2.1 下载cookie来存储 npm install --save js-cookienpm i vue-i18n -S 2.2 封装组件多页面应用 2.3 创建配置语言包字段 三、示例代码 3.1 main.js 引用 i18n.js import i18n from ./lang// 实现语言切换:i18n处理element&#xff0c…

Unity ARFoundation 配置工程 (Android)

注意&#xff1a; 1、AR Core是Google的产品&#xff0c;因为谷歌制裁华为&#xff0c;所以 有些 华为机可能不支持AR Core的软件&#xff1b; 2、手机在设置里搜索Google Play&#xff0c;看看是否已经安装上了&#xff0c;如果没有装此服务&#xff0c;去商城里搜索Google Pl…

互联网发展历程:跨越远方,路由器的启示

互联网的蓬勃发展&#xff0c;一直在追求更广阔的连接&#xff0c;更遥远的距离。然而&#xff0c;在早期的网络中&#xff0c;人们面临着连接距离有限的问题。一项重要的技术应运而生&#xff0c;那就是“路由器”。 连接受限的问题&#xff1a;距离有限 早期的网络受限于直接…

【Pandas】pd.concat和pd.merge的区别

前言 最近做了一个数据挖掘的项目&#xff0c;里面涉及到大量dataframe拼接的操作。在这个过程中&#xff0c;我主要使用过两种拼接方法&#xff1a;pd.merge和pd.concat。其中遇到过一些坑&#xff0c;在这里记录一下。 简介 首先给出pandas官方文档对于这两种方法的介绍&a…

Mysql基础2-多表查询和视图

约束 完整性约束 为防止不规范数据进入数据库中&#xff0c;在用户对数据进行插入&#xff0c;修改&#xff0c;删除操作时&#xff0c;MySQL提供了一种机制来检查数据库中的数据是否满足规定的条件 约束条件约束描述PRIMARY KEY主键约束NOT NULL非空约束&#xff0c;字段不…

解决oracle的em访问提示“使用不受支持的协议。”的bug

1. 设置oracle唯一名称 执行emctl时需要设置一个唯一的名称 否则提示 “Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name. ”中文意思为“未定义环境变量ORACLE_UNQNAME。 请将ORACLE_UNQNAME设置为数据库唯一名称/服务…

微服务-Nacos(注册中心)

Nacos是SpringCloud的一个功能非常强大的组件&#xff0c;想比eureka的功能更加丰富 官方的nacos简介 Nacos&#xff08;全称&#xff1a;Naming and Configuration Service&#xff09;是一个开源的动态服务发现、配置管理和服务管理平台。它由阿里巴巴集团开发并贡献给开源…

tensorflow 模型计算中,预测错误;权重参数加载

tensorflow 模型计算中&#xff0c;预测错误&#xff1b;权重参数加载 tensorflow 模型计算主要代码&#xff08;正确代码&#xff09; linear1_kernel_initializer tf.constant_initializer(numpy.transpose(data["linear1.weight"])) linear1_bias_initializer …

【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)

文章目录 案例引入传统方案实现实现分析 介绍基本介绍登场角色 案例实现案例一类图实现 案例二类图实现问答 策略模式在JDK源码中的使用总结文章说明 案例引入 有各种鸭子&#xff0c;比如野鸭、北京鸭、水鸭等。 鸭子有各种行为&#xff0c;比如走路、叫、飞行等。不同鸭子的…

设置Linux 静态IP

LInux虚拟机默认的IP地址是动态获取的 作为服务器&#xff0c;我们一般还需要把IP地址设置为静态的 设置静态IP vim /etc/sysconfig/network-scripts/ifcfg-ens33 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno # BOOTPROTOdhcp 动态获取 BOOTPROTOstatic IPADDR"192.16…

vue 重写数组的七个方法

一、为什么要重写数组方法&#xff1f; Vue 为了实现响应式数据绑定&#xff0c;需要能够捕获到数据的变化&#xff0c;以便在数据发生改变时自动更新视图。JavaScript 中的数组是引用类型&#xff0c;所以常规的引用跟踪机制不能捕获数组内部的变化。因为Vue的响应式是通过 O…

安防监控视频云存储EasyCVR平台H.265转码功能更新:新增分辨率配置

安防视频集中存储EasyCVR视频监控综合管理平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储…

C++ string类详解

⭐️ string string 是表示字符串的字符串类&#xff0c;该类的接口与常规容器的接口基本一致&#xff0c;还有一些额外的操作 string 的常规操作&#xff0c;在使用 string 类时&#xff0c;需要使用 #include <string> 以及 using namespace std;。 ✨ 帮助文档&…

【HarmonyOS】服务卡片 API6 JSUI跳转不同页面

【引言】 “JS卡片支持为组件设置action&#xff0c;包括router事件和message事件&#xff0c;其中router事件用于应用跳。若设置router事件&#xff0c;则action属性值为"router"&#xff1b;abilityName为卡片提供方应用的跳转目标Ability名&#xff1b;params中的…

基于java民宿管理系统设计与实现

摘 要 伴随着我国旅游业的快速发展&#xff0c;民宿已成为最受欢迎的住宿方式之一。民宿借助互联网和移动设备的发展&#xff0c;展现出强大的生命力和市场潜力。民宿主要通过各种平台如携程、去哪儿、淘宝等在网络上销售线下住宿服务&#xff0c;同时民宿经营者也需要从网络上…