这个非常简单,利用类型转换就得到了
一个double型的数转换成int类型的数会损失精度,损失的是小数部分。比如int a = 2.1,事实上a的值就是2
int b = 1.9999,b的值也是1。
所以这样写:
int floor(double number)
{
return int(number); //将number转换为int类型并返回
}
int floor(double value)
{
int temp = value;
return temp;
}
可以利用强制类型转换double 等-> int 时自动省去小数部分的特性来实现。
要注意 参数是负数时是有写不同的. 而不是简单的取整就ok了
float floor1(float a)
{
int r=a;
if (a<0) --r;
return (float) r;
}
#include
int floor(double number)
{
int n;
n=static_cast
return n;
}
int main()
{double number;
int n;
printf("please input a number=");
scanf("%lf",&number);
n=floor(number);
printf("the result =%d\n",n);
return 0;
}
int floor(double n)
{
return (int)n;
}