It is actually because the level of your Magikarp is too low to calculate its exact IV value. At lv.100, 1 IV point is equivelent to 1 Stat point, but when a Pokemon's level is low, IV doesnt do much, so it is harder to get the exact value of a low level of Pokemon, making the estimate range larger
1) The higher the level, I the range will be more precise. So try to get your Pokemon to level higher than 50 at least
2) Well, you're doing it right, so there is no need. Just level up higher and try it again