本文主要是介绍关于精度的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在一些问题中经常会遇到一些关于精度的保留;
1.要求保留小数后n位小数:代码如下
#include<stdio.h>
int main()
{double num = 1.123456789;int n = 6;printf("%0.*lf\n",n,num); //1.123457return 0;
}
注意,他会在小数点第n+1位四舍五入;
2.要求截取小数后n位,也就是不四舍五入:
#include<stdio.h>
#include<math.h>
int main()
{double num = 1.123456789;int n = 6;double num1 = (int)(num * (pow(10,n))) / pow(10,n);printf("%0.*lf\n",n,num1); //1.123456return 0;
}
3.介绍两个库函数,floor, ceil;
floor(num) 向下取整,也就是返回第一个小于等于num的整数
ceil(num) 向上取整,也就是返回第一个大于等于num的整数
#include<stdio.h>
#include<math.h>
int main()
{double num = 1.12345678;int a = floor(num); //向下取整 int b = ceil(num); //向上取整 printf("%d %d\n",a,b); //输出 1 2
}
这篇关于关于精度的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!