fix rounding issues in %f format
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c
index ce1fad6..5cf505a 100644
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -386,7 +386,7 @@
                      * (int64_t) cast is required for msvc6:
                      * it can not convert uint64_t to double
                      */
-                    ui64 = (uint64_t) ((f - (int64_t) ui64) * scale);
+                    ui64 = (uint64_t) ((f - (int64_t) ui64) * scale + 0.5);
 
                     buf = ngx_sprintf_num(buf, last, ui64, '0', 0, frac_width);
                 }