Oops, incorrect logic in NumberHelper.getFractionalPart(...).  I now see I'll run into those math errors doubles have/the reason you're not supposed to use them when storing dollar amounts...