关于#保留小数#的问题,如何解决?

输入两个数f和a,其中f是一个实数,a是一个整数.请你输出f,且保留a位小数

输入样例1.23456789 3 输出样例 1.235

#include <stdio.h>
#include <math.h>

int main()
{
    double f;
    int a, b;
    scanf("%lf%d", &f, &a);
    b = (int)pow(10, a + 1);
    f = (double)(int)(f * b) / b;
    printf("%lg", f);
    return 0;
}