c语言小数位
⑴ c语言中怎么保留小数2位
在c语言中一个数保留2位小数可以通过精度限定符来完成,精度限定符有一个点号后跟一个整数组成。
示例:
#include
int main()
{
dobule a = 1.23456;
printf("%.2f\n", a);
return 0;
}
/*
输出:1.23
*/注意:这里保留小数是四舍五入的,即如果保留的小数位数的后一位大于等于5,则进1,否则舍去,如示例中的a的值改为1.23556,则会输出1.24。
⑵ c语言保留一位小数是什么意思
保留一位小数就是只保留一位小数。
应该改为print("% .1 f",x),——(1的前面有个小数点)表示输出精确到小数点后1位。如果实际数字不足1位,则在末尾补0,若大于1位,则按四舍五入取前一位。
具体实现方法见下例:
floatx=3.1415926;
printf("%.1f",x);//输出结果为3.1。
简介
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器以及超级电脑等作业平台。
⑶ 如何用c语言计算小数点后位数
这个要看小数按什么格式输入。
如果按%s输入,也就是按字符串格式输入,先找到小数点的位置,然后统计下小数点后数字的长度。
具体实现可参考:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[128];
while(scanf("%s",a)!=EOF)
{
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return 0;
}
如果按%f(对应float类型小数)或者%lf(double类型的小数)方式读入,则需要先去掉整数部分,然后看小数部分一直乘10减去整数部分,知道等于0,统计,乘了几次10,但是由于浮点数在计算机中存的并不是准确值,这个往往得不到正确的结果。可以使用sprintf(str,"%g",f);,然后由于f毕竟不是准确值,还是会出现有些问题,源码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[])
{
char a[128];
float f;
while(scanf("%f",&f)!=EOF)
{
sprintf(a,"%g",f);
if(strstr(a,".")!=NULL)
printf("%d\n",strlen(strstr(a,".")+1));
else
printf("0\n");
}
system("pause");
return 0;
}
这是最后一个已经出现错误,所以遇到要精确判断小数点的位数,最好直接按字符串读入,这和图灵机的工作原理暗暗相合。
⑷ C语言小数位位数
思路:将输入作为一个字符串处理,然后逆序遍历
从第一个不为0的数字开始计数,直至遇到小数点字符
当集数超过5,对应"EX"
#include <stdio.h>
int main()
{
char s[100];
int i,cnt;
gets(s);
for(i;s[i];i++);
for(i--;s[i]=='0';--i);
for(cnt=0;s[i]!='.';--i,cnt++);
if(cnt<5)
printf("%d ",cnt);
else
printf("EX ");
return 0;
}
⑸ c语言怎样保留两位小数
C语言怎么保留两位小数,如果不定义的话,那么就会默认不是两位小数,那么需要输出内容保留小数,实际上可以对浮点型进行设置的。
1、首先打开IDE,接着保存main.c文件。
⑹ 关于C语言小数点后多少位的问题
C语言中浮点型一般分为float单精度型、double双精度型、long double长精度型,单精度浮点型小数点后面有效数字为6~7位和双精度浮点型小数点后面有效数字为15~16位。
在C语言标准库头文件float.h定义了浮点数小数点后的有效位数 :<pre t="code" l="cpp"> //float.h头文件的部分代码
#define DBL_DIG 15 //双精度小数点后15位
#define FLT_DIG 6 //单精度小数点后6位
#define LDBL_DIG 19 //长双精度小数点19
⑺ c语言精确小数位数会怎样舍去后面的小数
1、正数x四舍五入的技巧:
doublex;
x=(int)(x+0.5);
2、举例:若正数要依舍去法精确到小数点后第二位;
例如6.2367_>(int)(623.67)/100.0=623/100.0=6.23
doublex;
x=(int)(x*100)/100.0;//注意是除以100.0;
3、举例:若正数要四舍五入精确到小数点后第二位,即x*100四舍五入再除以100;
x=(int)(x*100+0.5)/100.0;
(7)c语言小数位扩展阅读
C语言保留小数点后一位
例:
#include<stdio.h>
voidmain()
{
floata=1,b=2,c;//先定义一个实型数据
c=a/b;
printf("%.1f ",c);//重点在于%.1f
}
⑻ C语言中如何保留一位小数点
保留一位小数,就是精确到十分位,省略十分位后面的尾数。
float sp = 36.51647
sp=( (float)( (int)( (sp+0.005)*100 ) ) )/100
eg: 保留小数点后第二位:
1.定义一个double型的变量。
2.先乘100。
3.加零点五。(此刻的小数点第三位加了零点五后,该进位和该舍掉 其实此刻为小数点第一位。)
4.强制转换: x=(int)x。
除法分为整除和精确除 例如a/b 当a,b同时为整数时,是整除,例3/5=0,5/3=1,14/5=2就是只要整数部分,而如果a,b两个有一个或者两个都是小数的话,就是精确除,和数学。
除法 c=b/a b=b/a等价b/=a 余数 c=b%a,也就是b整除a 的余数为c b=b%a等价b%=a。
除法比如a除以b 表示为:a/b 但是结果是取商 a除以b取余 a%b 结果是取余数。
⑼ C语言中如何定义小数
C语言中用于描述小数的数据类型是float和double,float类型表示单精度浮点数,double表示双精度浮点数。
C语言中浮点数常量有两种表示方式:
1、定点表示:(必须有小数点)
如:0.123,
.123,
123.0。
2、指数表示:(e或E之前必须有数字,指数必须为整数)如:12.3e3
,123E2,
1.23e4。
错误的写法:e-5
,1.2E-3.5,e3。
注意:浮点数常量默认为double类型,如果浮点数常量表示float类型,请在末尾添加小写的f或者大写的F,表示此常量为单精度浮点常量。
float f1 = 1.1f; //小写f
float f2 = 1.1F; //大写F
double d = 1.1; //double类型
⑽ C语言中,怎么处理小数位后6位
C语言里面,默认%f是小数点后6位,如果想小数点后面16位,写成%.16lf,不会自动四舍五入的,double是一个近似值,通常没有办法做的很精确。通常能精确到小数点后面5,6位,也就是说超过5,6位了可能就不准了。