I think what you have missed is how the Scanner works. The method nextFloat() won't lookup the next suitable float, it will look at the next token and see if it fits into a float. Same with hasNextFloat().
Actually hasNextFloat is useful if there are problems.But why are you using floats in the first place? You don't usually use floats for retailer codes. If the retailer is ABC123, that's a String, and you can pick it up with the next() method in your Scanner.
You won't get much output from printf if you don't have any % tags.