my $self = shift;
my ($amount) = @_;
my $amountOld = $self->amountAccount;
my $amountNew = $amountOld + $amount;
$self->amountAccount($amountNew);
if(length($amountOld) < 8 && length($amountNew) >= 8) {
use Devel::Peek;
print("\n\n"), Dump($amountOld), Dump($amount), Dump($amountNew), print("Went bad here: ($amountOld + $amount = $amountNew)\n\n");
$amount = 0.9;
$amountOld = 4253.95;
$amountNew = $amountOld + $amount;
print("\nNew values\n"), Dump($amountOld), Dump($amount), Dump($amountNew), print("Correct output: ($amountOld + $amount = $amountNew)\n\n");
}
####
SV = PVNV(0x2c8ef8c) at 0x23b4958
REFCNT = 1
FLAGS = (PADBUSY,PADMY,NOK,POK,pNOK,pPOK)
IV = 4256
NV = 4253.95
PV = 0x2d179a4 "4253.95"\0
CUR = 7
LEN = 35
SV = PVNV(0x2c8ef44) at 0x23b4928
REFCNT = 1
FLAGS = (PADBUSY,PADMY,NOK,pIOK,pNOK)
IV = 0
NV = 0.9
PV = 0
SV = PVNV(0x2c8efa4) at 0x23b4988
REFCNT = 1
FLAGS = (PADBUSY,PADMY,NOK,POK,pNOK,pPOK)
IV = 4309
NV = 4254.84999999999
PV = 0x2d17d9c "4254.84999999999"\0
CUR = 16
LEN = 35
Went bad here: (4253.95 + 0.9 = 4254.84999999999)
New values
SV = PVNV(0x2c8ef8c) at 0x23b4958
REFCNT = 1
FLAGS = (PADBUSY,PADMY,NOK,pNOK)
IV = 4256
NV = 4253.95
PV = 0x2d179a4 "4253.95"\0
CUR = 7
LEN = 35
SV = PVNV(0x2c8ef44) at 0x23b4928
REFCNT = 1
FLAGS = (PADBUSY,PADMY,NOK,pIOK,pNOK)
IV = 0
NV = 0.9
PV = 0x2dfa064 "0.9"\0
CUR = 3
LEN = 35
SV = PVNV(0x2c8efa4) at 0x23b4988
REFCNT = 1
FLAGS = (PADBUSY,PADMY,NOK,pNOK)
IV = 4309
NV = 4254.85
PV = 0x2d17d9c "4254.84999999999"\0
CUR = 16
LEN = 35
Correct output: (4253.95 + 0.9 = 4254.85)
####
perl -v
This is perl, v5.8.3 built for MSWin32-x86-multi-thread
(with 8 registered patches, see perl -V for more detail)