in reply to sprintf and for loop weirds???

If your intent is to turn @b into an array of %.2f-formatted numbers from @a, this is a perfect job for map:
@b = map { sprintf("%.2f", $_) } @a;
The compactness of this might even mean that you don't even need @a in the first place. Avoid unnecessary temporary variable storage.

Hope this helps...