[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[数值计算] 批处理怎样编写房贷计算器?

想写个房贷计算器,遇到小数点、幂、超过五位数的计算,绕来绕去没写好,请大家帮忙。
用批处理实现以下计算功能——月供(每月还款额)的计算:

下面举例:50多万的房子,需要贷款40万,20年,2011年2月9号的商业贷款年利率为6.6%。

本金:就是需要贷款的数额——400000元;

还款月数=20年*12月=240个月;

月利率=年利率/12=6.6%/12=0.0055元;

以下的年利率是4.16%,好像是09年的算法:

                                         
希望做个批处理实现以上算法,比较复杂,但应该可以实现。
(6.6%+1)的240次幂结果是3.73。
以下这个是我写的,前面的都对,但在计算月供和总利息的时候出错了,原因是算法有误。

@echo off
echo;
set /p v_sfbl=首付款比率(按揭成数,如 30% 填30):
set /p v_sdll=商业贷款利率(如 6.6%,6.6*100=640,填660):
set /p v_fwdj=房屋单价(元/平米):
set /p v_fwmj=房屋面积(平米):
set /p v_ajyg=按揭月供年数(如30年):
echo;
echo;============================================
echo;
set /a s_fwzj=%v_fwdj%*%v_fwmj%
echo;房屋总价:%s_fwzj% 元。
set /a s_sfk=%s_fwzj%*30/100
echo;首付款:%s_sfk% 元。
set /a s_dkje=%s_fwzj%-%s_sfk%
echo;贷款总额(贷款本金):%s_dkje% 元。
set /a s_hkny=%v_ajyg%*12
echo;还款年数 %v_ajyg% 年,共 %s_hkny% 个月份(期)。
set /a s_nlx=%s_dkje%*%v_sdll%/10000
echo;年利息 %s_nlx% 元。
set /a s_znlx=%s_nlx%*%v_ajyg%
echo;%v_ajyg% 年总利息 %s_znlx% 元。
set /a s_zhk=%s_znlx%+%s_dkje%
echo;%v_ajyg% 年总还款 %s_zhk% 元。
set /a s_yg=%s_zhk%/%s_hkny%
echo;月供 %s_yg% 元。
echo;
pause
exit
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

貌似是小数点的问题?年利息那块已经改好,年总利息那块同理,还是留给楼主好了(我真懒)...
  1. @echo off&setlocal enabledelayedexpansion
  2. echo;
  3. goto s
  4. set /p v_sfbl=首付款比率(按揭成数,如 30% 填30):
  5. set /p v_sdll=商业贷款利率(如 6.6%,6.6*100=640,填660):
  6. set /p v_fwdj=房屋单价(元/平米):
  7. set /p v_fwmj=房屋面积(平米):
  8. set /p v_ajyg=按揭月供年数(如30年):
  9. :s
  10. set v_sfbl=400000
  11. set v_sdll=0.00347
  12. set v_fwdj=5000
  13. set v_fwmj=100
  14. set v_ajyg=20
  15. echo;
  16. echo;============================================
  17. echo;
  18. set /a s_fwzj=%v_fwdj%*%v_fwmj%
  19. echo;房屋总价:%s_fwzj% 元。
  20. set /a s_sfk=%s_fwzj%*30/100
  21. echo;首付款:%s_sfk% 元。
  22. set /a s_dkje=%s_fwzj%-%s_sfk%
  23. echo;贷款总额(贷款本金):%s_dkje% 元。
  24. set /a s_hkny=%v_ajyg%*12
  25. echo;还款年数 %v_ajyg% 年,共 %s_hkny% 个月份(期)。
  26. set tmp=%v_sdll%
  27. for /l %%a in (1 1 9) do set tmp=!tmp:%%a=0!
  28. for /f "tokens=* delims=.0" %%a in ("%v_sdll%") do set tmp2=%%a
  29. set /a s_nlx=s_dkje*tmp2/%tmp:0.=1%,tmp_nlx=s_nlx
  30. for %%a in (1 1 4) do if "!s_nlx:~%%a!"=="" set /a n=5-%%a
  31. for /l %%a in (1 1 %n%) do set s_nlx=0!s_nlx!
  32. echo;年利息 %s_nlx:~0,-4%.%s_nlx:~-4% 元。
  33. set /a s_znlx=%s_nlx%*%v_ajyg%
  34. echo;%v_ajyg% 年总利息 %s_znlx% 元。
  35. set /a s_zhk=%s_znlx%+%s_dkje%
  36. echo;%v_ajyg% 年总还款 %s_zhk% 元。
  37. set /a s_yg=%s_zhk%/%s_hkny%
  38. echo;月供 %s_yg% 元。
  39. echo;
  40. pause
  41. exit
复制代码

TOP

呵呵,我也是懒人,所以搞这些东东!~
试试看先
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

个人认为这种计算的活还是vbs来做比较好

TOP

原帖由 zm900612 于 2011-2-14 00:01 发表
貌似是小数点的问题?年利息那块已经改好,年总利息那块同理,还是留给楼主好了(我真懒)...
@echo off&setlocal enabledelayedexpansion
echo;
goto s
set /p v_sfbl=首付款比率(按揭成数,如 30% 填30):
...

老大,结果似乎不对,不过你的方法有意思,研究下
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

年利息那段我没改,算出来当然不对...

TOP

回复 6楼 的帖子

我们前面写的是根据我同事的算法来写的,但结果和网上许多算法结果都不同。估计我们算的那个是错误的。
一楼给出的计算公式是网上公布的一条公式,不好算,好像不用算年利息那些,不过我根据网上的房贷计算器计算结果总结了下,得出以下关系:
月均还款*贷款月数=还贷总额
还贷总额-贷款总额=支付利息款
支付利息款/贷款月数=月利息款
我最怕数学了,简单的数学题都弄得我头昏!~如果有VB的,直接给个VB算了,今天是想用,不想去鼓捣了。谢谢。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

算法是根据1L的批处理。
用VB写的:
---学无止境---

TOP

返回列表