C语言算i+j,把这段代码中的double换成float就对了,这是为什么?double和float意思差不多吧

#include<stdio.h>
#include <stdlib.h>
void main()
{
double a,i,j;
printf("请把你要相加的数字输入计算机,中间请留空:\n");
scanf("%f%f",&i,&j);
{
a=i+j;
printf("%f\n",a);
};
return;
}

第1个回答  2014-10-19
double和float都一样的。Double比F大。不过%f错了还有,你中间的花括号其实没用的。
第2个回答  2014-10-19
double占据64位,float占据32位。所以和double对应的是%lf而不是%f。把程序中的%f换成%lf就可以了。
第3个回答  2014-10-19
虽然float和double都可以是浮点数,但是它们在内存中的长度还是不同的。
第4个回答  2014-10-19
%lf 对应 double
%f 对应 float本回答被提问者采纳
第5个回答  2014-10-19
%lf 对应 double
%f 对应 float

float 最多取7位有效数字
double最多取16位有效数字。精度跟高。

C语言算i+j,把这段代码中的double换成float就对了,这是为什么?double和f...
double和float都一样的。Double比F大。不过%f错了还有,你中间的花括号其实没用的。

用double为什么出错,而把double换成float就运算准确。请说明
&是取址运算,你如果使用double,则得到double*型值,而你格式控制是%f,即控制为float*,两个指针类型不一致,除了void*可以被其他指针类型的值赋值外,其他任何指针类型除非同类或者基类指向派生类的情况外,都是不可以的。相要输入double,你应该:f是浮点数,lf是双精度浮点数。

为什么把float改为double就对了?用float为什么不行?
是可以的,只是存在强制转换,所以可以运行,用float会有警告。你定义3个float型变量并初始化没有问题,但是编译器会默认将float转为double存储,因为double比float所占位数多,这次转换不会有精度损失。但是radius*radius*PI*high经过默认转换之后已经是一个double型的值(表达式的值),再将它赋值个一个fl...

C语言中float和double到底是什么意思,有什么区别,求解
是两种数据类型,float是单精度浮点型,能得到六位有效数字;double是双精度浮点型,可以得到十五位有效数字,而且取值范围比float的大的多

c语言中,编写一个函数,为什么用double x不行,而用float x才可以...
是因为你用的是%f格式输入的,scanf函数只是把你输入的输转化成float的格式放到x的地址,并没有考虑你的x的格式。而float和double格式是不一样的,double的长度是float的2倍,所以才会有问题。如果你用double输入的话可以用%lf格式

...我定义成double类型就输不出来,而换成float就可以正常输出?
可能输出语句写的不对吧,不然不会输出不了的。

c语言中double如何转换成float类型
double 转换成float, 如果数值没有超界,例子如下:void main(){ double a=123.4L;float b;b = (float) a;printf("%f",b);} 如果数值范围超界,则不应转换。

C语言中的float和double有什么区别
double精度更高,double就是双的意思,所以double是双精度浮点数 float就是一般的浮点数,如果没有精度要求,用float也是可以的。float相对比较老。

C++这段代码为什么要定义成double 和unsigned int?定义成float 可以吗...
理论上用double的地方都可以用float,只是double精度更高。float精度6-7位,double精度14-15位。在计算有小数点的情况下,一般用float足够了

c语言float和double的区别
都属于浮点数 也就是小数 但精度不同 可以取值的范围double要比float大 所占内存位数也不同 32位机来讲 float 占 4字节 double 占8字节 随便啦 一般的精度 float够用了 不过大部分情况都声明为double 主要是因为常小数值 系统识别为double 这样在计算时 免去类型转化 减小错误 ...

相似回答
大家正在搜