NO.87 提前还款or买火鸡?(捎带举例JAVA Double精度计算问题)
(如有谬误,敬请指正……)
现在我身上有一笔30万10年基准利率(6.55)的贷款,压力不大(每月等额本息还款3414.08元),于是每月工资留出一部分买了火鸡(货币基金:我买的那个收益年化约4.5,在这里普及一下:火鸡零门槛-1000元起可买;购买方便-各银行有售,网上银行即可操作;赎回快捷-一般T+1;还有,收益月结哟^^那真是活期的灵活定期的收益,实际上目前绝大部分火鸡的收益要超过定期)。
但我最近在想:如果把结余的这些钱提前还款会不会更划算?
于是把以下几种情况算一下做个对比:
1. 10年贷款应还款本息总额
2. 假如30万直接买成火鸡的10年收益(每月还是用工资去还3414.08;不提前还款而去买火鸡参照此种情况)
3. 假如不贷款,把每月的应还款买火鸡的10年收益(提前还款可参照此种情况,即贷款一下来就还了这种极端零利息情况)
--开始计算……
1. 随便从网上找个贷款计算器可知10年总还款额为: 409580.43元
2. 写程序(见后)计算知:30万本金购鸡、年化按4.5、月结,10年本金+收益= 472916.22元
3. 写程序(见后)计算知:月购3414.18、年化按4.5、月结,10年本金+收益= 502682.64元
如果将火鸡收益提高至6,则2、3情况分别得到 545819.02、 543109.26。
由此可知,按目前火鸡行情来看的话(大部分火鸡年化都不会超过5),还是提前还款更划算一些。否则买鸡更划算。
private static final double MONTH_RATE = fixed(1 + 0.045 / 12);/*** 四舍五入保留小数4位 * (上网查了一下银行的中间计算精度,有说3位的,有说5位,这里按4位)* 另:BigDecimal入参为String较精准* * @param d* @return*/private static double fixed(double d) {return new BigDecimal(Double.toString(d)).setScale(4,BigDecimal.ROUND_HALF_UP).doubleValue();}/*** 假如把本该每月还的钱买成年化4的火鸡* * @param d* @return*/private static void calcNoLoan() {int months = 120;double principal = 3314.08;double sum = 0;for (int i = 0; i < months; i++) {sum = fixed(sum * MONTH_RATE + principal);}System.out.println(sum);}/*** 假如把30万贷款买成年化4的火鸡* * @param d* @return*/private static void calcLoan() {int months = 120;double sum = 300000;for (int i = 0; i < months; i++) {sum = fixed(sum * MONTH_RATE);}System.out.println(sum);}public static void main(String[] args) throws Exception {calcLoan();calcNoLoan();}
NO.87 提前还款or买火鸡?(捎带举例JAVA Double精度计算问题)相关推荐
- java 小程序 多线程_《多线程练习—买票小程序——Java第十四周》
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: < ...
- java排队买票_【排队买票】 (Java代码)
解题思路: 注意事项: 参考代码:public class 排队买票 { public static int count = 0; public static void qpl(char[] char ...
- 100块钱买100只鸡php,使用JS计算买100只鸡问题
这篇文章主要介绍了JS计算输出100元钱买100只鸡问题的解决方法,简单描述了100元钱买100只鸡问题并结合实例形式分析了问题解决的思路与具体实现方法,需要的朋友可以参考下 本文实例讲述了JS计算输 ...
- PAT 乙级 1039. 到底买不买(20)Java版
小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子 ...
- python的datetime举例_Python datetime库计算两个时间点之间的分钟(秒、天)数
计算两个时间点之间的分钟数 import datetime def minNums(startTime, endTime): '''计算两个时间点之间的分钟数''' # 处理格式,加上秒位 start ...
- ZZULIOJ-1074,百钱买百鸡(Java)
题目描述: 百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡.母鸡.小鸡各买多少只? 本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡.母 ...
- nodejs+Vue社区菜店线上买菜商城系统java springboot
此系统需要java面向对象编程基础,数据库应用知识以及功能分析.根据目前阶段所掌握的知识,根据这学期以及之前学习掌握的java编程知识和数据库应用知识以及前端知识做出一个这样的基于Javaweb.Sp ...
- java 方法重载 应用举例,Java 实例 - 重载(overloading)方法中使用 Varargs
以下实例演示了如何在重载方法中使用可变参数:/* author by w3cschool.cc Main.java */public class Main { static void vaTest(i ...
- java界面布局举例,java图形界面实例
java写一个图形程序,让数组输出在图形界面上 代码怎么写?别那么复杂的. 已把程序文件打包上传了,并附上运算结果图. import javax.swing.*;import java.awt.*;i ...
最新文章
- flink HA高可用Standalone集群搭建
- 前后台传参类型、格式不同,解决思路
- SQL基础【十九、触发器】(不建议使用触发器的原因)
- 音频文件 数据库存储_数据库系统是什么?它由哪几部分组成?
- JMeter web 测试
- java实现权重随机算法
- Java Integer 常量池
- Ansible详解(一)——Ansible理论基础
- devc编译器中的socket编程爬坑日记
- 龙格库塔解一阶微分方程c语言,四阶龙格库塔法解微分方程
- 百度地图api初次申请及简单应用
- 游戏引擎jvm频繁young gc问题分析
- 重庆地区外卖店铺分析系统的设计与实现
- SURF C++代码 详细阅读(二)—— 极值点检测 确定极值点精确位置
- html遮罩层动画制作,flash简单制作遮罩动画效果
- Tensorflow中的tf.argmax()函数
- 【正点原子I.MX6U-MINI应用篇】1、编写第一个应用App程序helloworld
- 几个主流的Java连接池
- 了解HTTP与B/S架构并熟悉浏览器开发者工具与请求报文和响应报文格式等【非常详细】
- Android: 进程保活
热门文章
- ArcGIS Pro 3D入门
- ECSHOP农行支付接口开发(含手机端)
- 【美学设计】微信小程序界面设计
- 全球免费公共【 DNS 】解析服务器 IP 地址列表推荐 【解决无法上网+加速+防劫持】
- Software Engineering at Google翻译-III-12-Unit Testing(单元测试 )
- [转载]vfw的AVI族函数读取AVI文件
- 个人项目-Material-Design版花瓣网图片App
- How to show a Power View report at the SharePoint page
- QT实现北斗GGA数据的自动模拟生成和解析
- 【Java我最强】最值得Java人反复精读的15本好书(附电子书)