您的位置:首页 > 其它

保留N为小数的四舍五入处理法

2013-01-08 00:00 176 查看
#include <stdio.h>

#include <stdlib.h>

#include <math.h>

/* 保留N为算法: 利用的是Double to int 时是否有一个进位处理: a = (int)(pow(10,N)*a + 0.5)/pow(10,N) */

/* 例如: a = (int)(1000.0 * a + 0.5) / 1000.0 [N = 3时]*/

void near_to_cut(double a,const int N)

{

a = (int)(pow(10,N)*a + 0.5)/pow(10,N); // >5 时+0.5会有个进位处理+1

printf("保留的位数%d ,结果 %lf\n",N,a);

}

int main(int argc, char *argv[])

{

double a_in;

int n;

printf("输入要保留的位数N:");

scanf("%d",&n);

printf("输入一个数:");

scanf("%lf",&a_in);

near_to_cut(a_in,n);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  四舍五入 保留N位
相关文章推荐