关于#c语言#的问题

#include<stdio.h>

int main()
{
    int  n;
    scanf("%d",&n);
    while(n--)
    {
        float t,a;
        scanf("%f",&t);
        if(t<100)
        {
            a=(int)(t*100+0.5)/100.0;
            printf("%.2f\n",a);
        }
        else if(t>=100)
        {
            t=t*0.95-5;
            a=(int)(t*100+0.5)/100.0;
            printf("%.2f\n",a);
        }
    }
    return 0;
}

在我刷oj题的时候,输入大于100的数据都没问题,但一直提交错误,后来我试了100以下数据,发现是四舍五入问题

例如:输入90.5时,四舍五入应该是91.0
但实际输出却为90.5
请教如何修改代码

目的是啥

一个比较妙的方法:

float f=.....;
int i=f+0.5;//四舍五入后的值