我可能会有一个新手问题,但是在搜索网站上没有找到任何东西。我正在学习使用C语言编程,并尝试从头开始构建一个将浮点数四舍五入为最接近的整数的函数,而不使用math.h库。这是我的代码:
void main()
{
float b;
for(b = 0; b <= 2; b = b + 0.1)
{
printf("%f ", b);
printf("%i ", (int)b);
printf("%f ", b - (int)b);
printf("Nearest: ");
if((b - (int)b)<0.5)
printf("%i ", (int)b);
else
printf("%i ", (int)b + 1);
printf("Function: %i ", round_near(b));
printf("\n");
}
getchar();
}
int round_near(float b)
{
if((b - (int)b)<0.5)
return(int)b;
else
return (int)b + 1;
}
我的结果看起来像这样: 代码有些多余,只是为了查看函数的一些单独步骤。 出了什么问题?是否有我不知道的浮点类型变量的诡计?
(int)b
会大于b
? - scohe001void main()
-->int main(void)
- Sourav Ghosh