如果我贷款买一套 400W 的房子,我要给银行多送几辆迈巴赫?

news2025/4/21 7:59:24
作者:一只野生的八哥

买房攻略

2023 年至今,上海房价一跌再跌。俺已经蠢蠢欲动了,磨刀霍霍向"买房"。但是奈何手里钞票不够,只能向天再借 500 年打工赚钱。但是作为倔强的互联网打工人,想知道自己会被银行割多少韭菜。于是就写了个程序,用于计算我贷款买房需要多给银行还多少钱。这样我就能知道银行割我的韭菜,能省下几辆迈巴赫的钱了。

附带一份赚钱攻略(说实话,打工赚不了钱,但可以有点点钱):

技术大厂,部门捞人,前/后端测试←感兴趣

要求学历:全日制统招本科(非学院派即可):

--加班偶尔较多,但周末加班两倍工资。

--15-35K,工资在一线城市属于一般,但二线城市很可以。

贷款利率

  • 公积金的贷款利率

    • 首房:贷款时间 <=5 年,利率为 2.6% ;贷款时间 >= 5 年,利率为 3.1%
    • 非首房:贷款时间 <=5 年,利率为 3.025% ;贷款时间 >= 5 年,利率为 3.575%。

  • 商业险贷款利率

    • 贷款时间 <=5 年,利率为 3.45% ;贷款时间 >= 5 年,利率为 3.95%

代码实现

  • 以下代码,实现了:我贷款买房需要多给银行还多少钱
public class LoanAmountCalculation {
​
    //首套住房5年以内公积金贷款利率
    private static final double FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS = 2.6;
    //首套住房5年以上公积金款利率
    private static final double FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS = 3.1;
    //二房5年以内公积金贷款利率
    private static final double NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS = 3.025;
    //二房5年以上公积金款利率
    private static final double NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS = 3.575;
    //5年以内商业贷款利率
    private static final double COMMERCIAL_LOAN_RATE_WITHIN_FIVE_YEARS = 3.45;
    //5年以上商业贷款利率
    private static final double COMMERCIAL_LOAN_RATE_MORE_FIVE_YEARS = 3.95;
​
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
​
        double houseAmount = getInputValue(scanner, "请输入预计买房金额(单位:W):", "请输出正确的买房金额(>0)!");
        double principal = getInputValue(scanner, "请输入您的本金(单位:W):", "请输出正确的买房金额(>0)!");
        if (principal >= houseAmount) {
            System.out.println("全款买房,崇拜大佬!");
            return;
        }
​
        double accumulationFundLoanAmount = getInputValue(scanner, "请输入公积金贷款金额(单位:W):", "请输出正确的公积金贷款金额(>0)!");
​
        double commercialLoanAmount = houseAmount - principal - accumulationFundLoanAmount;
        if(commercialLoanAmount <= 0){
            System.out.println("您的本金+公积金贷款已经够买房啦,恭喜大佬!");
            return;
        }else{
            System.out.println("您的本金+公积金贷款还不够买房哦,需要商业贷款金额为(单位:W):" + commercialLoanAmount + "\n");
        }
​
        int accumulationFundLoanYears = getInputIntValue(scanner, "请输入公积金贷款年份(单位:年):");
        int commercialLoanAmountYears = getInputIntValue(scanner, "请输入商业贷款年份(单位:年):");
​
        int isFirstHouse = getInputIntValue(scanner, "请输入是否首房(0:否,1:是):");
​
        LoanAmount loanAmount = calculateLoanAmount(
                accumulationFundLoanAmount, accumulationFundLoanYears,
                commercialLoanAmount, commercialLoanAmountYears, isFirstHouse);
        System.out.println("详细贷款信息如下:" + "\n" + loanAmount);
    }
​
    /**
     * 获取double类型的输入
     * @param scanner:Java输入类
     * @param prompt:提示信息
     * @param errorMessage:输入错误的提示信息
     * @return 一个double类型的输入
     */
    private static double getInputValue(Scanner scanner, String prompt, String errorMessage) {
        double value;
        while (true) {
            System.out.println(prompt);
            if (scanner.hasNextDouble()) {
                value = scanner.nextDouble();
                if (value > 0) {
                    break;
                } else {
                    System.out.println(errorMessage);
                }
            } else {
                scanner.next();
                System.out.println(errorMessage);
            }
        }
        return value;
    }
​
    /**
     * 获取int类型的输入
     * @param scanner:Java输入类
     * @param prompt:提示信息
     * @return 一个int类型的输入
     */
    private static int getInputIntValue(Scanner scanner, String prompt) {
        int value;
        while (true) {
            System.out.println(prompt);
            if (scanner.hasNextInt()) {
                value = scanner.nextInt();
                if (value > 0) {
                    break;
                } else {
                    System.out.println("请输入正确的年份(>0)!");
                }
            } else {
                scanner.next();
                System.out.println("请输入正确的年份(>0)!");
            }
        }
        return value;
    }
​
    /**
     * 功能:贷款金额计算
     * 入参:
     * 1.accumulationFundLoanAmount:公积金贷款金额  2.accumulationFundLoanYears:公积金贷款年份;
     * 3.commercialLoanAmount:商业贷款金额;        4.commercialLoanAmountYears:商业贷款年份
     * 5.isFirstHouse:是否首房
     */
    private static LoanAmount calculateLoanAmount(double accumulationFundLoanAmount, int accumulationFundLoanYears,
                                                           double commercialLoanAmount, int commercialLoanAmountYears, int isFirstHouse){
        LoanAmount loanAmount = new LoanAmount();
        //公积金贷款还款金额
        double accumulationFundRepaymentAmount;
        if(isFirstHouse == 1){
            accumulationFundRepaymentAmount = accumulationFundLoanYears <= 5 ?
                    accumulationFundLoanAmount * Math.pow((100 + FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, accumulationFundLoanYears)
                    : accumulationFundLoanAmount * Math.pow((100 + FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS) / 100, accumulationFundLoanYears);
        }else{
            accumulationFundRepaymentAmount = accumulationFundLoanYears <= 5 ?
                    accumulationFundLoanAmount * Math.pow((100 + NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, accumulationFundLoanYears)
                    : accumulationFundLoanAmount * Math.pow((100 + NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS) / 100, accumulationFundLoanYears);
        }
        loanAmount.setAccumulationFundRepaymentAmount(String.format("%.2f", accumulationFundRepaymentAmount));
​
        //公积金贷款每年还款金额
        loanAmount.setAccumulationFundAnnualRepaymentAmount(String.format("%.2f", accumulationFundRepaymentAmount / accumulationFundLoanYears));
​
        //商业贷款还款金额
        double commercialRepaymentAmount = commercialLoanAmountYears <= 5 ?
                commercialLoanAmount * Math.pow((100 + COMMERCIAL_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, commercialLoanAmountYears)
                : commercialLoanAmount * Math.pow((100 + COMMERCIAL_LOAN_RATE_MORE_FIVE_YEARS) / 100, commercialLoanAmountYears);
        loanAmount.setCommercialRepaymentAmount(String.format("%.2f", commercialRepaymentAmount));
​
        //商业贷款每年还款金额
        loanAmount.setCommercialAnnualRepaymentAmount(String.format("%.2f", commercialRepaymentAmount / commercialLoanAmountYears));
​
        //公积金贷款超出金额
        loanAmount.setAccumulationFundLoanExceedAmount(String.format("%.2f", accumulationFundRepaymentAmount - accumulationFundLoanAmount));
​
        //商业贷款超出金额
        loanAmount.setCommercialLoanExceedAmount(String.format("%.2f", commercialRepaymentAmount - commercialLoanAmount));
​
        loanAmount.setTotalExceedLoanAmount(String.format("%.2f", accumulationFundRepaymentAmount - accumulationFundLoanAmount + commercialRepaymentAmount - commercialLoanAmount));
        return loanAmount;
    }
    @Data
    static class LoanAmount{
        /**
         * 公积金贷款还款金额
         */
        private String accumulationFundRepaymentAmount;
        /**
         * 公积金贷款每年还款金额
         */
        private String accumulationFundAnnualRepaymentAmount;
        /**
         * 商业贷款还款金额
         */
        private String commercialRepaymentAmount;
        /**
         * 商业贷款每年还款金额
         */
        private String commercialAnnualRepaymentAmount;
        /**
         * 公积金贷款超出金额 = 公积金贷款还款金额 - 公积金贷款金额
         */
        private String accumulationFundLoanExceedAmount;
        /**
         * 商业贷款超出金额 = 商业贷款还款金额 - 商业贷款金额
         */
        private String commercialLoanExceedAmount;
​
        /**
         * 总共贷款超出金额
         */
        private String totalExceedLoanAmount;
​
        @Override
        public String toString() {
            return "1.公积金贷款还款金额=" + accumulationFundRepaymentAmount + "万元\n" +
                    "2.商业贷款还款金额=" + commercialRepaymentAmount + "万元\n" +
                    "3.公积金贷款每年还款金额=" + accumulationFundAnnualRepaymentAmount + "万元\n" +
                    "4.商业贷款每年还款金额=" + commercialAnnualRepaymentAmount + "万元\n" +
                    "5.公积金贷款超出金额=" + accumulationFundLoanExceedAmount + "万元\n" +
                    "6.商业贷款超出金额=" + commercialLoanExceedAmount + "万元\n" +
                    "7.总共贷款超出金额=" + totalExceedLoanAmount + "万元\n";
        }
    }
}

代码输入,输出示例


由上图可知,我要贷款买一套 400w 的房子,本金只有 120w,使用组合贷:公积金贷款 120w(10年),商业贷款 160w(20年)。

最终我需要多还银行 230.07w,相当于买两辆迈巴赫的钱了,巨亏!

以上就是全部内容了,如果涉及到真实场景,还是需要根据具体的情况计算的!

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

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

相关文章

elementui实现复杂表单的实践

简介 文章主要讲述在vue3项目中使用elementui框架实现复杂表单的方式。表单中涉及动态组件的生成、文件上传和富文本编辑器的使用&#xff0c;只会将在实现过程中较复杂的部分进行分享&#xff0c;然后提供一份完整的前端代码。 表单效果演示 基础信息 spu属性 sku详情 关键…

《梦醒蝶飞:释放Excel函数与公式的力量》 11.1 ISBLANK函数

第11章&#xff1a;信息函数 第一节 11.1 ISBLANK函数 11.1.1 简介 ISBLANK函数是Excel中的一个信息函数&#xff0c;用于检查指定单元格是否为空。该函数返回布尔值&#xff1a;如果单元格为空&#xff0c;返回TRUE&#xff1b;否则返回FALSE。ISBLANK函数在数据清理、条件…

楼道灯微波雷达模块模组,智能感应uA级超低功耗替换红外传感器,飞睿助力绿色照明

随着科技的飞速发展&#xff0c;LED楼道灯早已不仅仅是照亮我们回家路的工具&#xff0c;它们正变得越来越智能、高效和环保。今天&#xff0c;就让我们一起探索LED楼道灯背后的科技——飞睿智能微波雷达模块模组&#xff0c;以及它如何以超低功耗&#xff08;uA级别&#xff0…

thinkphp8框架源码精讲

前言 很开心你能看到这个笔记&#xff0c;相信你对thinkphp是有一定兴趣的&#xff0c;正好大家都是志同道合的人。 thinkphp是我入门学习的第一个框架&#xff0c;经过这么多年了&#xff0c;还没好好的研究它&#xff0c;今年利用了空闲的时间狠狠的深入源码学习了一把&…

将 Vision Transformer 用于医学图像的语义分割

关于ViT的关键点如下&#xff1a; ViT架构基于将图像表示为一组补丁。图像补丁是图像的非重叠块。每个块最初都有一个由该块中的图像像素形成的嵌入向量。Transformer编码器是ViT的主要部分&#xff0c;它根据它们的类别归属来训练补丁之间的相似度。它包含一系列线性、归一化…

什么是RLHF(基于人类反馈的强化学习)?

什么是RLHF&#xff08;基于人类反馈的强化学习&#xff09;&#xff1f; 基于人类反馈的强化学习&#xff08;Reinforcement Learning from Human Feedback, RLHF&#xff09;是一种结合强化学习和人类反馈的技术&#xff0c;用于训练智能体&#xff0c;使其行为更符合人类期…

叉车司机疲劳检测系统解决方案

在日益繁忙的物流仓储和工业制造领域&#xff0c;叉车司机的工作强度逐渐增大&#xff0c;疲劳驾驶的风险也随之提升。因此&#xff0c;我们提出了一套能够准确检测叉车司机疲劳状态的系统&#xff0c;以确保驾驶安全&#xff0c;提高工作效率。 安全监控功能主要透过三颗独立摄…

科普丨企业防泄密有哪些方法?10个防泄密技巧推荐

在信息化高速发展的今天&#xff0c;企业数据安全已成为企业运营的核心议题。随着信息技术的发展和市场竞争的加剧&#xff0c;企业面临的泄密风险越来越大&#xff0c;尤其是商业机密和敏感数据的泄露&#xff0c;会对企业的经济效益、品牌信誉乃至法律地位构成严重威胁。因此…

学习测试8-数据库mysql操作

下载配置mysql 网络博客 使用 在Linux里 1 service mysql start 启动服务 2 在Navicatt 中连接Linux服务器 3 第一步 将所有文件上传到/opt目录下 第二步 chmod 777 deploy-mysql.sh 第三步 ./deploy-mysql.sh4 service mysql status 查看状态是否安装成功 5 重启mys…

分布式训练

一、分布式计算 跟多GPU不同是&#xff1a;数据不是从主存拿的&#xff0c;是在分布式文件系统拿的&#xff0c;有多个工作站&#xff0c;工作站中有多个GPU&#xff0c;通过网络读取数据到GPU中&#xff0c;GPU通过网络接收到来自参数服务器的参数进行运算计算梯度&#xff0c…

【C++深度探索】全面解析多态性机制(一)

hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;大耳朵土土垚的博客 &#x1…

与沃尔玛进行EDI对接,需要了解什么?如何实现EDI对接呢?

与沃尔玛进行EDI对接前&#xff0c;需要了解什么呢&#xff1f; 首先&#xff0c;需要了解什么是EDI&#xff1f; EDI&#xff08;Electronic Data Interchange&#xff09;即电子数据交换&#xff0c;借助EDI使得企业&#xff08;计算机/应用系统&#xff09;与企业&#xff…

腰肌筋膜炎最好的治疗方法

腰部疼痛是腰肌筋膜炎的主要症状&#xff0c;这种疼痛可能是隐痛、酸痛或肿胀痛&#xff0c;且疼痛可能呈持续性或间歇性。在长时间站立、坐姿、弯腰或腰部受寒着凉后&#xff0c;疼痛通常会加重。疼痛可能会扩散到腰部的其他区域&#xff0c;甚至可能影响到臀部或大腿后侧。疼…

基于springboot+mybatis学生管理系统

基于springbootmybatis学生管理系统 简介&#xff1a; 题目虽然是学生管理系统&#xff0c;但功能包含(学生&#xff0c;教师&#xff0c;管理员),项目基于springboot2.1.x实现的管理系统。 编译环境 &#xff1a; jdk 1.8 mysql 5.5 tomcat 7 框架 &#xff1a; springboot…

W外链短网址平台怎么样?抖音/小红书/快手/微信卡片生成

在当今数字化时代&#xff0c;网址的便捷性和易记性对于用户体验和网站推广至关重要。短网址技术应运而生&#xff0c;以其简洁、易记、方便分享的特性&#xff0c;逐渐成为网站优化和推广的重要手段之一。其中&#xff0c;W外链作为一个功能全面的短网址服务平台&#xff0c;以…

mavlink协议解析

1. mavlink数据包格式 字节索引C 版本内容值说明0uint8_t magic数据包启动标记0xFE特定于协议的文本启动 (stx) 标记, 用于指示新数据包的开始。 任何不识别协议版本的系统都将跳过数据包。1uint8_t len载荷长度0 - 255指示以下 payload 部分的长度 (为特定消息固定)。2uint8_t…

一款永久免费的内网穿透工具——巴比达

近期&#xff0c;一款名为巴比达的内网穿透工具凭借其永久免费的特性&#xff0c;以及卓越的性能与安全性&#xff0c;引起了我的关注。本文将深入探讨巴比达如何通过其独创的技术方案&#xff0c;达到企业级数据通信要求。 WanGooe Tunnel协议 首先&#xff0c;巴比达的核心竞…

矩阵管理系统实现后台统一管理的解决方案

在当今数字化浪潮中&#xff0c;企业面临着前所未有的挑战与机遇。如何快速响应市场变化、提升运营效率、降低管理成本&#xff0c;成为众多企业关注的焦点。而矩阵管理系统作为一种新兴的管理工具&#xff0c;凭借其强大的后台统一管理能力&#xff0c;正成为越来越多企业的首…

适合学生写作业的台灯怎么选?一文读懂护眼台灯怎么选!

不知大家发现没有&#xff0c;近些年&#xff0c;戴眼镜的小孩儿是越来越多了&#xff0c;甚至有的地方好多刚上小学一年级的孩子&#xff0c;就已经戴着200度的近视镜了。据统计&#xff0c;如今&#xff0c;中国小学生近视比例为42%&#xff0c;初中生近视比例为80.7%&#x…

技校专业群的生成机制研究

一、引言 随着我国经济的快速发展和产业结构的不断优化&#xff0c;技术型人才的需求日益旺盛。技工学校&#xff08;简称技校&#xff09;作为培养技术型人才的摇篮&#xff0c;其专业群的构建与发展显得尤为重要。专业群作为技校战略发展的核心&#xff0c;不仅能够优化教学…