当前位置:
首页 > temp > 简明python教程 >
-
房贷计算器代码2.0(2)
1":
327 {
328 RateChoose(dt0);
329 rate0 = (n0 <= 60 ? lowRate : highRate);
330 n = n0;
331 for(int i=1;i<=n0;i++)
332 {
333 RateChoose(dt1);
334 rate = (n0 <= 60 ? lowRate : highRate);
335
336
337 if (dt1.Year != dt0.Year && rate != rate0)//这里应该有问题?
338 {
339 double p0 = rate0 / 12;
340 double payMonth0 = (p0 * totalMoney * Math.Pow((1 + p0), n)) / ((Math.Pow(1 + p0, n) - 1));
341 double interest0 = balance * p0;
342 double capital0 = payMonth0 - interest0;
343
344 rate0 = rate;
345
346 interest = balance * (rate0 / 12);
347 totalMoney = balance;
348 balance -= capital0;
349
350 payMonth = capital0 + interest;
351 n = n0 - i + 1;
352 Console.WriteLine("{0}\t{1:0.00}\t\t\t{2:0.00}\t\t\t{3:0.00}\t\t{4:0.00}", dt1, interest, capital0, payMonth, balance);
353 dt1 = dt1.AddMonths(1);
354 continue;
355 }
356
357
358
359 p = rate0 / 12;
360 if (dt2.Year == dt1.Year && dt2.Month == dt1.Month)
361 {
362 balance -= money;
363 totalMoney = balance;
364 switch (newChoice)
365 {
366 case "1":
367 {
368
369 n = n0 - i + 1;
370 flag = true;
371 }
372 break;
373 case "2":
374 {
375 double temp = Math.Log((payMonth / (payMonth - totalMoney * p)), (1 + p));
376 n= (int)Math.Ceiling(temp);
377 n0 = n + i - 1;
378 }
379 break;
380 }
381
382 }
383 payMonth = (p * totalMoney * Math.Pow((1 + p), n)) / ((Math.Pow(1 + p, n) - 1));
384
385
386 interest = balance * p;
387 capital = payMonth - interest;
388 balance -= capital;
389 if (flag)
390 {
391 payMonth += money;
392 capital += money;
393 flag = false;
394 }
395 Console.WriteLine("{0}\t{1:0.00}\t\t\t{2:0.00}\t\t\t{3:0.00}\t\t{4:0.00}", dt1, interest, capital, payMonth, balance);
396 dt1 = dt1.AddMonths(1);
397 }
398 }
399 break;
400 case "2":
401 {
402
403 }
404 break;
405 }
406 }
407 static void Main(string[] args)
408 {
409
410 {
411 Program p = new Program();
412 p.Paint();
413 Console.WriteLine("请选择您的操作!1.房贷计算 2.月供速算 3.还款状况 4.提前还款");
414 Console.WriteLine("请选择您的还款方式?1.等额本息 2.等额本金");
415 choice = Console.ReadLine();
416 Console.WriteLine("请输入你的贷款金额");
417 totalMoney = Convert.ToDouble(Console.ReadLine());
418 Console.WriteLine("请输入您贷款的期数");
419 int number = Convert.ToInt32(Console.ReadLine());
420 Console.WriteLine("请输入你的首次贷款时间");
421 DateTime dT = Convert.ToDateTime(Console.ReadLine());
422 Console.WriteLine("请输入你的提前还款时间");
423 DateTime dTR = Convert.ToDateTime(Console.ReadLine());
424 Console.WriteLine("请输入你的还款金额");
425 double partMoney = Convert.ToDouble(Console.ReadLine());
426 Console.WriteLine("请选择你要的后续操作!1.减少月供 2.缩短年限");
427 newChoice = Console.ReadLine();
428 //Console.WriteLine("你输入的日期是{0},短期利率是{1},长期利率是{2}",dT,p.lowRate,p.highRate);
429 //dT= dT.AddMonths(1);
430 // Console.WriteLine(dT);
431 // p.Repayment(number, dT);
432 // p.Compute(number);
433 // p.Payment(dTR);
434 p.Prepayment(number, dT, dTR, partMoney);
435 Console.ReadKey();
436 }
437 }
438 }
439 }
经过两三天的修改,代码进一步完善。但是鉴于自己水平有限,代码错误之处在所难免。不足之处,希望大家提出宝贵意见,使代码进一步完善。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数