There's nothing 'technically' wrong with how Sandisk measures memory. Most memory manufacturers (hard disks, CDRs, as well as flash memory) base their sizes on a mega byte being equal to 1 million bytes (which is accurate by math and language interpretations). However, computers see memory as two raised to the x power - a kilobyte is 2^10 (1024 bytes), a megabyte = 2^20 (1048576 bytes). Thus 1,000,000,000/1048576 = 954 (which means Sandisk gave you a little extra

Of course, the file structure from formating also takes a little of the memory.
I just saw an ad last week (maybe it was for Kingston but I don't know that for sure) that stated a manufacturer was measuring their flash memory on the same terms as a computer sees it. Maybe it will catch on.