专业编程基础技术教程

网站首页 > 基础教程 正文

Linux C 编程 - 详解floor函数、ceil函数和round函数

ccvgpt 2024-12-12 11:09:28 基础教程 1 ℃
  • floor 函数

功能:把一个小数向下取整,即就是如果数是2.4,那向下取整的结果就是2.000000

原型:double floor(double x); x 是需要计算的数

Linux C 编程 - 详解floor函数、ceil函数和round函数

返回值:

成功:返回一个double类型的数,此数默认有6位小数,无失败的返回值。

头文件:#include<math.h>

#include<stdio.h>
#include<math.h>

int main()
{
  double a = floor(2.4);
  double b = floor(-2.4);
  printf("a = %f\n", a);
  printf("b = %f\n", b);

  return 0;
}
$ ./test
a = 2.000000
b = -3.000000

floor 函数把转换后的结果强转为int类型:

#include<stdio.h>
#include<math.h>

int main()
{
  int a = floor(2.4);
  int b = floor(-2.4);
  printf("a = %d\n", a);
  printf("b = %d\n", b);

  return 0;
}
$ ./test
a = 2
b = -3

把计算结果强转为int后,会丢失精度

  • ceil 函数

功能:把一个小数向上取整,即就是如果数是2.4,那向上取整的结果就是3.000000

原型:double ceil(double x), x 是需要计算的数

返回值:

成功:返回一个double类型的数,此数默认有6位小数,无失败的返回值。

头文件:#include<math.h>

#include<stdio.h>
#include<math.h>

int main()
{
  double a = ceil(2.4);
  double b = ceil(-2.4);
  printf("a = %f\n", a);
  printf("b = %f\n", b);

  return 0;
}
$ ./test
a = 3.000000
b = -2.000000

ceil 函数把计算后的结果强转为int类型的:

#include<stdio.h>
#include<math.h>

int main()
{
  int a = ceil(2.4);
  int b = ceil(-2.4);
  printf("a = %d\n", a);
  printf("b = %d\n", b);

  return 0;
}
$ ./test
a = 3
b = -2
  • round 函数

功能:把一个小数四舍五入,就是如果数是2.4, 那四舍五入的结果就为2;如果数是2.5,那结果就是3。

原型:double round(double x); x 指的是需要计算的数。

头文件:#include<math.h>

#include<stdio.h>
#include<math.h>

int main()
{
  double a = round(2.4);
  double b = round(2.8);
  double c = round(-2.4);
  double d = round(-2.8);

  printf("a = %f\n", a);
  printf("b = %f\n", b);
  printf("c = %f\n", c);
  printf("d = %f\n", d);

  return 0;
}
$ ./test
a = 2.000000
b = 3.000000
c = -2.000000
d = -3.000000

最近发表
标签列表