printInt(): fix sign issue when outputting 0, use postfix in/decrement
This commit is contained in:
		
							parent
							
								
									60663b5433
								
							
						
					
					
						commit
						f553896e2d
					
				| @ -42,31 +42,33 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||||
| template <int length, int precision> static inline char *printInt(char *buffer, int value) | template <int length, int precision> static inline char *printInt(char *buffer, int value) | ||||||
| { | { | ||||||
|     bool minus = true; |     bool minus = true; | ||||||
|     if (value > 0) |     if (value >= 0) | ||||||
|     { |     { | ||||||
|         minus = false; |         minus = false; | ||||||
|         value = -value; |         value = -value; | ||||||
|     } |     } | ||||||
|     buffer += length - 1; |     buffer += length - 1; | ||||||
|     for (int i = 0; i < precision; i++) |     for (int i = 0; i < precision; ++i) | ||||||
|     { |     { | ||||||
|         *buffer = '0' - (value % 10); |         *buffer = '0' - (value % 10); | ||||||
|         value /= 10; |         value /= 10; | ||||||
|         buffer--; |         --buffer; | ||||||
|     } |     } | ||||||
|     *buffer = '.'; |     *buffer = '.'; | ||||||
|     buffer--; |     --buffer; | ||||||
|     for (int i = precision + 1; i < length; i++) |     for (int i = precision + 1; i < length; ++i) | ||||||
|     { |     { | ||||||
|         *buffer = '0' - (value % 10); |         *buffer = '0' - (value % 10); | ||||||
|         value /= 10; |         value /= 10; | ||||||
|         if (value == 0) |         if (value == 0) | ||||||
|  |         { | ||||||
|             break; |             break; | ||||||
|         buffer--; |         } | ||||||
|  |         --buffer; | ||||||
|     } |     } | ||||||
|     if (minus) |     if (minus) | ||||||
|     { |     { | ||||||
|         buffer--; |         --buffer; | ||||||
|         *buffer = '-'; |         *buffer = '-'; | ||||||
|     } |     } | ||||||
|     return buffer; |     return buffer; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user