This answer goes back to "printf" functionality
Bankers Rounding:
It's important to know this is more stating that you want to show one decimal place on a Floating point integer.
Since you are stating one decimal point it is examing the second decimal to decide where to round. The rounding logic for %.f format'er works like so: if your number directly ahead is under 4 then 5 rounds down if you your number directly ahead is 4 and above 5 rounds up.
Reason of this: http://linuxgazette.net/144/misc/lg/a_question_of_rounding_in_issue_143.html: "For the GNU C library, the rounding rule used by printf() is "bankers rounding" or "round to even". This is more correct than some other C libraries, as the C99 specification says that conversion to decimal should use the currently selected IEEE rounding mode (default bankers rounding)."
found from this answer: printf rounding behavior for doubles
If you want to do a common rounding round inline above use the c function round() with a little math to do the trick or you can simply use NSNumberFormatter as you stated.