weird math

From: Andrew Gaffney (agaffney_at_skylineaero.com)
Date: 05/28/04


Date: Thu, 27 May 2004 22:31:08 -0500
To: beginners <beginners@perl.org>

I am writing a program to parse a CSV file downloaded from my bank. I have it
keep a running balance, but I'm getting a weird total. Apparently, -457.16 +
460.93 = 3.76999999999998. But when 20 is subtracted from that, I get -16.23.
There are no weird numbers like that in my input data. All numbers have no more
than 2 numbers after the decimal point. Here is my code:

#!/usr/bin/perl

do './money.pl';
# use strict and warnings is defined in money.pl

my $balance = 0;

print $cgi->header;
print "<html><body>\n";
print "<table>\n<tr><td width=100>Date</td><td width=60>Type</td><td
width=350>Description</td><td width=80>Withdrawl<td width=80>Deposit</td$
my $csvdata = parse_csv("/tmp/usbank.csv");
foreach(@{$csvdata}) {
   print "<tr><td>$_->{date}</td><td>$_->{type}</td><td>$_->{descr}</td>";
   if($_->{amount} > 0) {
     print "<td><br></td><td>$_->{amount}</td>";
   } else {
     print "<td>$_->{amount}</td><td><br></td>";
   }
   $balance += $_->{amount};
   print "<td>$balance</td></tr>\n";
}
print "</body></html>";

money.pl is an include file that contains the parse_csv() function which pulls
apart each line of the downloaded CSV and pushes it into an array as an
anonymous hash.

-- 
Andrew Gaffney
Network Administrator
Skyline Aeronautics, LLC.
636-357-1548


Relevant Pages

  • Re: weird math
    ... >>I am writing a program to parse a CSV file downloaded from my bank. ... Andrew Gaffney ...
    (perl.beginners)
  • Re: weird math
    ... > I am writing a program to parse a CSV file downloaded from my bank. ... perldoc -q "long decimals" ...
    (perl.beginners)
  • Re: weird math
    ... > I am writing a program to parse a CSV file downloaded from my bank. ... > keep a running balance, but I'm getting a weird total. ...
    (perl.beginners)
  • Re: weird math
    ... On Thu, 2004-05-27 at 23:31, Andrew Gaffney wrote: ... > I am writing a program to parse a CSV file downloaded from my bank. ...
    (perl.beginners)
  • Re: Accessing a Web server --- how?
    ... Virgil Stokes wrote: ... I still say you should contact the bank and see if they have any API or interface defined, so you don't have to do web-scraping. ... So you can download this file and figure how to parse it, but you'll probably need to also parse the earlier pages, and that could be easier or harder. ...
    (comp.lang.python)