C语言浮点型转整型 5
voidmain(){floatftemp=0;scanf("%f",&ftemp);ftemp=ftemp*10;printf("%d",ftemp);getch();...
void main()
{
float ftemp=0;
scanf("%f",&ftemp);
ftemp=ftemp*10;
printf("%d",ftemp);
getch();
}
这段代码为什么 无论输入什么,结果都是0。
我知道,要改为%f 。但是为什么输出都是0.
aaaqiutao 我把初值去掉,结果还是没变化。为什么呢?
对,我要问的就是 Purple__Sea说的。 展开
{
float ftemp=0;
scanf("%f",&ftemp);
ftemp=ftemp*10;
printf("%d",ftemp);
getch();
}
这段代码为什么 无论输入什么,结果都是0。
我知道,要改为%f 。但是为什么输出都是0.
aaaqiutao 我把初值去掉,结果还是没变化。为什么呢?
对,我要问的就是 Purple__Sea说的。 展开
6个回答
展开全部
http://zhidao.baidu.com/question/23899742.html?fr=ala0
这个应该是数据结构的问题。
在K&RC下,float值用于表达式或用作参数前,会自动转换成double类型。而ANSI C一般不会自动把float转换成double。有些程序已假定其中的float参数会被转换成double,为了保护大量这样的程序,所有printf()函数的float参数还是被自动转换成double型。
只要你输入的数载float的范围内,那么转化为double型后,这个数据在内存中的二进制的低位部分(就是后面的部分)都是0。而这个数据是放进栈里的,所以按%d格式读取的时候,只读取后面的4个字节的数据,所以出现都为0,你试试在输入的时候多输几位小数,比如输入1.23456等,值就不为0了,为一个很大的数字,很可能为负数。
这个应该是数据结构的问题。
在K&RC下,float值用于表达式或用作参数前,会自动转换成double类型。而ANSI C一般不会自动把float转换成double。有些程序已假定其中的float参数会被转换成double,为了保护大量这样的程序,所有printf()函数的float参数还是被自动转换成double型。
只要你输入的数载float的范围内,那么转化为double型后,这个数据在内存中的二进制的低位部分(就是后面的部分)都是0。而这个数据是放进栈里的,所以按%d格式读取的时候,只读取后面的4个字节的数据,所以出现都为0,你试试在输入的时候多输几位小数,比如输入1.23456等,值就不为0了,为一个很大的数字,很可能为负数。
展开全部
float ftemp;
不要后面的=0;因为一旦你分配给ftemp了值,它是无法通过键盘写入的方式赋给的,因为空间已经被占用。这不是a=b+c这样表达式的赋值。
晕,难道要我把源代码给你你直接复制?
那就给你吧!
#include <stdio.h>
void main()
{
float ftemp;
scanf("%f",&ftemp);
ftemp=ftemp*10;
printf("%f",ftemp);
getch();
}
随便输入一个数,然后回车,看结果
不要后面的=0;因为一旦你分配给ftemp了值,它是无法通过键盘写入的方式赋给的,因为空间已经被占用。这不是a=b+c这样表达式的赋值。
晕,难道要我把源代码给你你直接复制?
那就给你吧!
#include <stdio.h>
void main()
{
float ftemp;
scanf("%f",&ftemp);
ftemp=ftemp*10;
printf("%f",ftemp);
getch();
}
随便输入一个数,然后回车,看结果
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按照你的程序,变量b没有使用,而且a的数据类型并没有改变,a=static_cast<float(a);
将一个浮点型变量赋值给一个整型变量仍然是一个整型变量
将一个浮点型变量赋值给一个整型变量仍然是一个整型变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%d",ftemp);输出类型不对 应该是%f
Printf输出的时候不会自动转换类型。必须手动强制转换(int)ftemp
Printf输出的时候不会自动转换类型。必须手动强制转换(int)ftemp
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要问的应该是 为什么使用printf("%d",ftemp)后,无论输入什么数,总是输出0吧?
这个我也不知道,我把ftemp改为具体的浮点数,他不输出零啊,不知道他是怎么计算出来的。
这个我也不知道,我把ftemp改为具体的浮点数,他不输出零啊,不知道他是怎么计算出来的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询