From f797ae74856a21b4471baec28dbbfd82b48fe2dc Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 19 Apr 2008 17:26:36 +0200 Subject: Fix rounding when a precision is given. --- tests/test-printf-posix.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'tests/test-printf-posix.h') diff --git a/tests/test-printf-posix.h b/tests/test-printf-posix.h index 37caf86795..c1ba7a5525 100644 --- a/tests/test-printf-posix.h +++ b/tests/test-printf-posix.h @@ -1,5 +1,5 @@ /* Test of POSIX compatible vsprintf() and sprintf() functions. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007-2008 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -67,6 +67,12 @@ test_function (int (*my_printf) (const char *, ...)) /* Precision. */ my_printf ("%.f %d\n", 1234.0, 33, 44, 55); + /* Precision with no rounding. */ + my_printf ("%.2f %d\n", 999.95, 33, 44, 55); + + /* Precision with rounding. */ + my_printf ("%.2f %d\n", 999.996, 33, 44, 55); + /* A positive number. */ my_printf ("%Lf %d\n", 12.75L, 33, 44, 55); @@ -85,6 +91,12 @@ test_function (int (*my_printf) (const char *, ...)) /* Precision. */ my_printf ("%.Lf %d\n", 1234.0L, 33, 44, 55); + /* Precision with no rounding. */ + my_printf ("%.2Lf %d\n", 999.95L, 33, 44, 55); + + /* Precision with rounding. */ + my_printf ("%.2Lf %d\n", 999.996L, 33, 44, 55); + /* Test the support of the %F format directive. */ /* A positive number. */ @@ -105,6 +117,12 @@ test_function (int (*my_printf) (const char *, ...)) /* Precision. */ my_printf ("%.F %d\n", 1234.0, 33, 44, 55); + /* Precision with no rounding. */ + my_printf ("%.2F %d\n", 999.95, 33, 44, 55); + + /* Precision with rounding. */ + my_printf ("%.2F %d\n", 999.996, 33, 44, 55); + /* A positive number. */ my_printf ("%LF %d\n", 12.75L, 33, 44, 55); @@ -123,6 +141,12 @@ test_function (int (*my_printf) (const char *, ...)) /* Precision. */ my_printf ("%.LF %d\n", 1234.0L, 33, 44, 55); + /* Precision with no rounding. */ + my_printf ("%.2LF %d\n", 999.95L, 33, 44, 55); + + /* Precision with rounding. */ + my_printf ("%.2LF %d\n", 999.996L, 33, 44, 55); + /* Test the support of the POSIX/XSI format strings with positions. */ my_printf ("%2$d %1$d\n", 33, 55); -- cgit v1.2.1