floor
函数定义与语法
函数名: floor
功 能: 返回小于或者等于指定表达式的最大整数
用 法: double floor(double x);
头文件:math.h
#include <stdio.h>
#include <math.h>
int main(void)
{
double number = 123.54;
double down, up;
down = floor(number);
up = ceil(number);
printf("original number %10.2lf\n",number);
printf("number rounded down %10.2lf\n",down);
printf("number rounded up %10.2lf\n",up);
return 0;
}
运行结果:
original number 123.54
number rounded down 123.00
number rounded up 124.00
程序例2:
void main()
{
int i = 5;
int s = i + 0.8 ;
cout<<s<<endl;
}
输出结果为 s = 5 ;
即:高精度像低精度转换,小树部分会被截去。。整数只要加上小数,,小数无论是多大,,都会被舍去,,即使是0.9
| /*编写一个函数double myround(double x),输入一个小数,将它四舍五入。 |
02 | *例如:myround(-3.51)的值是-4.0,myround(4.49)的值是4.0。可以调用math.h中的 |
03 | *库函数ceil和floor实现这个函数。*/ |
04 | #include <stdio.h> |
05 | #include <math.h> |
06 | double myround( double x); |
07 | int main() |
08 | { |
09 | double num=1.00; |
10 | printf ( "please enter the value of num(double):" ); |
11 | scanf ( "%lf" ,&num); |
12 | //printf("%lf\n",num); |
13 | //printf("%lf\n",floor(num)); |
14 | printf ( "你输入的值进行四舍五入后的结果为:%lf\n" ,myround(num)); |
15 | return 0; |
16 | } |
17 | double myround( double x) |
18 | { |
19 | //double add=0.5; |
20 | //int min,max; |
21 | int sa,si; //sa用于保存x的整数部分,si用于保存加0.5后的临时值。整数部分的四舍五入 |
22 | if (x==0.0) |
23 | return 0.0; |
24 | else |
25 | if (x>0.0) |
26 | {sa=( int )x; |
27 | si=x+0.5; |
28 | if (sa== floor (si)) //如果if语句成立说明x的小数比0.5小,应当舍去 |
29 | return sa; |
30 | else |
31 | return sa+1; |
32 | } |
33 | else //负数部分的四舍五入 |
34 | {sa=( int )x; |
35 | si=x-0.5; |
36 | if (sa== ceil (si)) |
37 | return sa; |
38 | else |
39 | return sa-1; |
40 | } |
41 | } |
double i = 5.6;
int k =(int)i;
cout<<i<<endl;
结果:i = 5.6
即:(int)i----i的值不会变!!static_cast<int>(i);中,i的值也不会变!!!
double i = 5.6;
int k =static_cast<int>(i);
cout<<i<<endl;