With double value=3.141593 initialized in va_list ap, such code: vsnprintf(buffer, sizeof(buffer), "%#.0f", ap); expected output string: "3." but real output string: ".3" Signed-off-by: Sunny <zxcvbnm37425@gmail.com>