I don't get it. It doesn't look like a logic issue, though.
issuing
:%s/0\.0/0./g while editing in vi, writing and executing yields:
#!/usr/bin/perl
use strict;
use warnings;
my $base = 0.425;
while ( my $line = <DATA>){
chomp $line;
my ($z,$c1,$c2,$c3,$c4) = split(/,/,$line);
print join("|",$z,$c1,$c2,$c3,$c4),"\n";
my $total = $c1+$c2+$c3;
print $c4 == ($total + $base) ? "True\n" : "False $c4 != ".($total+$
+base)."\n";
}
__DATA__
00501,0.000,0.425,0.025,0.875
00544,0.000,0.425,0.025,0.875
06390,0.000,0.425,0.025,0.875
with results:
00501|0.000|0.425|0.025|0.875
True
00544|0.000|0.425|0.025|0.875
True
06390|0.000|0.425|0.025|0.875
True
So making everything 10 times bigger yields expected results. Rounding error?
--Bob Niederman, http://bob-n.com