Fixed error when "%%" is used as last

Following code caused missing argument error:

sprintf("%d%%", 10); // should return "10%"

Changed arguments check to ignore missing argument for "%%" format
string.
Fixed sign on negative float numbers greater than -1

As reported by terasaka2k:

"%.2f".printf(-0.33) generates "0.33".
Merge pull request #2 from chybis/fixes

Fixes for negative float and "%%" formatting