

Grandmother denied $41.8m casino jackpot payout [due to software glitch] - GotAnyMegadeth
http://www.bbc.co.uk/news/business-32479759

======
nasalgoat
I'm not so sure why people are upset or surprised by this - it's been standard
operating procedure for a long time that malfunctions void all pays.

As for why, a comment from Ars:

"Created an account just to post this. Having formerly programmed casino games
I've seen this bug many times before:

    
    
        To me this doesn't look like some "glitch" in the machine but rather an
        oversight by Aristocrat's programmers. Most casino games have a bonus
        round obtained from the right combination of symbols. So at the end of
        the bonus round the player will receive a "Regular Win" and a "Bonus
        Win". Sometimes the regular win is subtracted or not counted in the
        bonus win, sometimes it is counted. Can't remember what Miss Kitty's
        rules are exactly but let's say that in this case the regular win is
        subtracted from the Bonus win. So the programmer will subtract =>
        bonusWin - regularWIn = totalWin
    
        Ok, now lets assume that granny
        had a really terrible bonus round, like she only won $5 when she had a
        regular win of $10. Ok, so the grand total will be $5.00 - $10.00 =
        -$5.00.
    
        But why didn't the "Total Win" display a negative
        number? Well, it's simply because many casino game developers use
        Unsigned 32 bit integers in win amounts. Basically unsigned integers
        cannot have negative numbers. So when you subtract one larger unsigned
        integer from a smaller one instead of resulting in a negative number the
        result will wrap around to its largest possible value. In the case of
        unsigned Integers that's => 4,294,967,295 with two decimal places
        added it for the cent amounts it comes to $42,949,672.94!
    
        That
        still doesn't explain exactly why the win was a bit below $42 million.
        My guess is that its smaller because of the programming language used
        and the processor word size. Max integer size varies from language to
        language but it for an unsigned 32bit integer its usually around that
        value."

