c语言中怎么保留一位有效数字
注意是有效数字,不是小数比如一个变量a怎么让a只有一位有效数字,并且采取只进不舍的方式输出该变量不是四舍五入的方式。...
注意是有效数字,不是小数
比如一个变量a 怎么让a只有一位有效数字,并且采取只进不舍的方式输出该变量
不是四舍五入的方式。 展开
比如一个变量a 怎么让a只有一位有效数字,并且采取只进不舍的方式输出该变量
不是四舍五入的方式。 展开
5个回答
展开全部
先#include<math.h>
用ceil函数即可。它是一律向上取整,如ceil( 1.2) = 2
对不同位数,可这样:
如把a=0.21变0.3: b = ceil (10a)/10
与ceil相对应的还有floor函数,用法相同,向下取整。
希望能帮到你。
用ceil函数即可。它是一律向上取整,如ceil( 1.2) = 2
对不同位数,可这样:
如把a=0.21变0.3: b = ceil (10a)/10
与ceil相对应的还有floor函数,用法相同,向下取整。
希望能帮到你。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
lz的问题说的不明不白的,要人怎么回答啊!
你是不是想将一个对位数分成一个一个单数,比如1234分成1,2,3,4
int a=1234;
int a1,a2,a3,a4;
a1=a/1000;
a2=a%1000/100;
a3=a%1000%100/10;
a4=a%1000%100%10;
如果不是,说清楚点。
你是不是想将一个对位数分成一个一个单数,比如1234分成1,2,3,4
int a=1234;
int a1,a2,a3,a4;
a1=a/1000;
a2=a%1000/100;
a3=a%1000%100/10;
a4=a%1000%100%10;
如果不是,说清楚点。
追问
对,不是你理解的那样
我的意思3.14保留一位有效数字即为3
0.14保留一位有效数字即为0.1
但是这是四舍五入的保留方式,我要的方式是只进不舍。
ps:3.14为4,0.14为0.2
这该怎么实现?多谢
追答
这个样子的话好像不是简单的显示格式就能实现的啊!反正我没学过有这种保留格式!
要是我遇到这样的问题我只能用复杂的语句来实现了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有效数字,并且采取只进不舍的方式输出该变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我们在学习C语言课本的时候会发现书上说:
float的有效数字为6位
double的有效数字为15位
那么我们应该怎样去看到它真正的有效数字是不是所说的那样呢?
我用代码简单实现了一下,代码如下:
#include <stdio.h>
void main()
{
float a;
double b; //变量声明
a = 1.0/3;
b = 1.0/3;
printf("a==%f\n",a); //输出a
printf("b==%f\n",b);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
发现结果为:
这里写图片描述
可以发现值是一样的,那么我们应该怎样去看它的有效数字是不是书上所说的那样呢?
我们用格式控制它输出的有效数字位数,你就能看到它真正的有效数字是多少了,超过有效数字的值不确定,代码如下:
#include <stdio.h>
void main()
{
float a;
double b; //变量声明
a = 2.0/3;
b = 2.0/3;
printf("a==%.20f\n",a); //输出a,并要求强制保留20位有效数字
printf("b==%.20f\n",b);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
那么结果为:
这里写图片描述
我们可以在结果上看出:
float的有效值为6位
double的有效值为15位
float的有效数字为6位
double的有效数字为15位
那么我们应该怎样去看到它真正的有效数字是不是所说的那样呢?
我用代码简单实现了一下,代码如下:
#include <stdio.h>
void main()
{
float a;
double b; //变量声明
a = 1.0/3;
b = 1.0/3;
printf("a==%f\n",a); //输出a
printf("b==%f\n",b);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
发现结果为:
这里写图片描述
可以发现值是一样的,那么我们应该怎样去看它的有效数字是不是书上所说的那样呢?
我们用格式控制它输出的有效数字位数,你就能看到它真正的有效数字是多少了,超过有效数字的值不确定,代码如下:
#include <stdio.h>
void main()
{
float a;
double b; //变量声明
a = 2.0/3;
b = 2.0/3;
printf("a==%.20f\n",a); //输出a,并要求强制保留20位有效数字
printf("b==%.20f\n",b);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
那么结果为:
这里写图片描述
我们可以在结果上看出:
float的有效值为6位
double的有效值为15位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询