C语言浮点类型输出0.000000

如题所述

你用的什么编译器?这个不可能是0.000000,因为a,b,ave都是double型变量,所以语句:ave=(a+b)/2;会先把整数2转换成double型再进行运算,结果还是double型,应该输出3.500000追问

dev c++ 我也很奇怪阿 为什么会这么输出

追答

换个IDE软件吧,dev c++默认用的是gcc编译器,你也可以换个编译器,网上有教程,不过我还是建议你换个IDE,要不然还可能会出现别的莫名其妙的问题,可以试试Codeblocks

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-31
double输出用%lf
float用%f
第2个回答  2016-10-12
printf里面的输出格式是%f,不知道有没有影响,我用我的编译器好像结果正常,你改成%lf试试追问

还是不行

追答

你把a和b的值也打印出来,一点一点看,我就不信了,另外可能是编译器问题,原因是编译器在编译的时候没有链接浮点数相关的库,可以在定义变量的时候初始化一下。
double a=0.0,b=0.0;像这样,然后应该就ok了。

追问

我把l写错成1了= =

追答

所以说不仔细不行啊, 在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数,你写成1,表示位数是1,编译器也不报错,这种错误最难发现

本回答被提问者采纳

c语言代码输出为0.000000
在C语言中,可以通过浮点数的运算和格式化输出,得到结果为0.000000的输出。一、浮点数的运算 在C语言中,浮点数是用来表示小数的一种数据类型。为了得到输出结果为0.000000,首先需要进行涉及到浮点数运算的表达式计算。这个表达式的结果应该是一个非常接近零的浮点数。二、格式化输出 在C语言中,使用prin...

C语言问题---这个单位换算程序运行,结果是0.000000,用的是float。求解...
1. 您的单位换算程序中,单位换算的顺序可能存在问题。确保在进行任何计算之前,所有的单位都已经转换为同一类型(例如,全部转换为厘米)。2. 在C语言中,使用浮点数进行计算时,需要注意浮点数的表示范围和精度。如果计算结果为0.000000,这可能是因为数值太接近于0,超出了浮点数的表示范围。3. 您提...

c语言为什么输出始终为0.000000
c语言为什么输出始终为0.000000 森谂i 2018-11-21 C语言编程语言 |举报 答题抽奖 首次认真答题后 即可获得3次抽奖机会,100%中奖。 更多问题 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 c语言 搜索资料 本地图片 图片链接 代码 提交回答正在求助 查看更多问题 > 换...

C语言浮点类型输出0.000000
你用的什么编译器?这个不可能是0.000000,因为a,b,ave都是double型变量,所以语句:ave=(a+b)\/2;会先把整数2转换成double型再进行运算,结果还是double型,应该输出3.500000

c语言代码输出为0.000000
deo的值 你在前面定义了为整数 而后面你强制转化的是1\/deo的值 整数除整数结果就为整 1\/deo结果等于 0.几几几相当于等于0 float转化的就是0这个值所以等于0.000000 你应该把float(1\/deo)改成 float(1)\/deo或1\/(float(deo))或者sum = sum + 1.0\/deo ...

在C语言里,如果定义变量时INT型,但输出是用%f,为什么结果是0.000000
在输出时如果把%后面的字母用错,则输出的结果都是0. 当然如果是double 和float 等则会输出为0.000000 小数点后默认为6位小数

C语言输出都是0.000000
int main(){ double x,s1,s2,a,z;int i=1,j,y;a=1;s1=0;scanf("%Lf",&x);\/\/\/ z=x;s2=x;\/\/s2 要初始化 y=1;while(fabs(s1-s2)*1000000>1)\/\/\/要用while 循环控制精度,{ s2=s1;for(j=i-1;j>0;j--)z=z*x;for(j=i;j>0;j--)a=a*j;if((y+1)%2==0)\/...

c语言为什么输出为0.000000?
scanf("%lf,%lf",&x,&y);double类型对应scanf格式说明符%lf

C语言中为什么结果总是0.000000?
因为你用了浮点型,小数位数默认是六个

...打问号那句。为啥把97用浮点形式输出变成0.000000而不是97.00000_百 ...
97在内存中以补码形式存放,是00000000 00000000 00000000 01100001;float型是按阶码+尾数原码形式存放的,最高位是符号位,紧跟着8位是阶码,剩下的是尾数。把00000000 00000000 00000000 01100001按此意义解释是0表示正、00000000为阶码(阶码用所谓移码表示,float型要减127,所以全0阶码表示尾数的小数点要...

相似回答