forked from karan/Projects
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMortgage.pl
executable file
·65 lines (51 loc) · 1.2 KB
/
Mortgage.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#! /usr/bin/perl
# Mortgage.pl
# calculate monthly payments on fixed term mortgage
use Getopt::Long;
use strict;
my ($P, $N, $r);
# returns '' if not a valid money amount
#sub isMoney($) {
# my $c = shift;
#
# if($c =~ /^[\$]?(\d+|\d*\.\d{2})$/) {
# $c =~ s/[\$]//;
# return $c;
#printf("\$%.2f\n", $W*$H*$c);
# } else {
# return '';
#print "You did not enter a valid dollar amount.\n";
# }
#}
#sub isPercent($) {
# my $p = shift;
# if($p =~ /^(\d+|\d*\.\d+)%?$/) {
# $p =~ s/%//;
# return $p;
# } else {
# return '';
# }
#}
GetOptions( "cost=f" => \$P,
"years=i" => \$N,
"rate=f" => \$r);
#print "$P $N $r\n";
#print isMoney($P)."\n";
#print isPercent($r)."\n";
#unless ($P = isMoney($P)) {
# print "You did not enter a valid dollar amount.\n";
# exit(1);
#}
#unless ($r = isPercent($r)) {
# print "remember to provide the rate as a percentage.\n";
# exit(1);
#}
#if ($N =~ /\d+/) {
# $N *= 12;
#} else {
# print "you did not enter a year amount for the term length.\n";
#}
$r = $r/100/12;
my $payment = $r / (1 - (1 + $r)**((-12)*$N));
$payment *= $P;
printf("\$%.2f\n", $payment);