为什么输入0.01显示的是35秒?

 
#include<stdio.h> 
int main()
{
    float input_number ;
    int hours,minutes,seconds;
    printf("How many hours:");
    scanf("%lf",&input_number);
    hours=(int)input_number;
    minutes=(int)((input_number-hours)*60);
    seconds=((input_number-hours)*60-minutes)*60;
    printf("%dhours%dminutes%dseconds",hours,minutes,seconds);
    return 0;
}
 




scanf("%lf",&input_number);这里改成scanf("%f",&input_number);
float类型用%f,double类型用%lf

1秒等于1/3600小时,36秒等36/36000=0.01小时
应该是计算过程中损失了精度