如果是整数直接输出整数,否则保留两位有效数字

请大佬们指点一下,做了半天还是没做出来

img


#include <iostream>
#include <cmath>
#include <iomanip>

float f(float x)
{
    if (x <= 0.0f)
        return 0.0f;
    else if (x <= 10.0f)
        return std::sqrt(x);
    else
        return 2.0f * x + 1.0f;
}

int main()
{
    int t = 0;
    std::cin >> t;
    for (int i = 0; i < t; i++)
    {
        float x;
        std::cin >> x;
        float y = f(x);
        int a = static_cast<int>(y + 0.5);
        if (std::abs(y - a) < 0.01)
            std::cout << a << std::endl;
        else
            std::cout << std::fixed << std::setprecision(2) << y << std::endl;
    }
    return 0;
}