Ⅰ c语言整型数赋值给浮点型的问题
b=a/2;是这么计算的:a是整型变量,2也是,因此计算被当成整型计算,得到整型结果0,然后发现b是float型的,再将整型结果0进行数据类型转换赋值给b。因此应当将a/2算式中分子或分母转换成float型就能正确计算了,比如:b=(float)a/2;或b=a/2.0;或b=a; b/=2;
Ⅱ C语言如何把整型转换成浮点数
C语言有以下几种取整方法:
1、直接赋值给整数变量。如:
int i = 2.5; 或 i = (int) 2.5;
这种方法采用的是舍去小数部分,能用于你的问题。
2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数返回值是double。整数除法对正数的取整是舍去小数部分,能用于你的问题。不过整数除法对负数的取整结果和使用的C编译器有关。
3、使用floor函数。floor(x)返回的是小于或等于x的最大整数。如:
floor(2.5) = 2
floor(-2.5) = -3
4、使用ceil函数。ceil(x)返回的是大于x的最小整数。如:
ceil(2.5) = 3
ceil(-2.5) = -2
floor()是向负无穷大舍入,floor(-2.5) = -3;ceil()是向正无穷大舍入,ceil(-2.5) = -2。floor函数能用于你的问题。
5、
int b = (int)a;//取整
int c = (int)(a+0.5);//四舍五入
Ⅲ C语言中怎么把一整型数组变成浮点型数组
#include<stdio.h>
void main()
{
int i[5]={1,2,3,4,5};
float b[5];
int j;
for(j=0;j<5;j++)
b[j]=i[j];
for(j=0;j<5;j++)
printf("%.2f ",b[j]);
}
整型是可以自动转换为浮点型的 ,这个并不需要去强制转换
Ⅳ C语音编程,怎样把整数转换成双浮点型
强制类型转换表达式
----------
形式:(类型名)(表达式〔可以是常量,也可以是含有运算符的表达式)
例(int)3.324=3 (double)(10%3)=1.0
(double)10%3 X---> 10.0%3 %前只能是整型
Ⅳ C语言中,如何将整型变为浮点型。比如int X=123,我要输出0.123。
double xs=123*0.001 //这样即可,它会自动完成类型转换
Ⅵ C语言中有没有把字符转型化为 浮点型的函数
C语言中将字符串转型化为浮点型数据的函数有:atof()
和
strtod()
头文件:
#include <stdlib.h>
函数原型:
double atof (const char* str);
【参数说明】str 为要转换的字符串。
【函数说明】atof() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数str 字符串可包含正负号、小数点或E(e)来表示指数部分,如123. 456 或123e-2。
【返回值】返回转换后的浮点数;如果字符串 str 不能被转换为 double,那么返回 0.0。
double strtod (const char* str, char** endptr);
【参数说明】str 为要转换的字符串,endstr 为第一个不能转换的字符的指针。
【函数说明】strtod() 函数会扫描参数str字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。参数 str 字符串可包含正负号、小数点或E(e)来表示指数部分。如123. 456 或123e-2。
若endptr 不为NULL,则会将遇到的不符合条件而终止的字符指针由 endptr 传回;若 endptr 为 NULL,则表示该参数无效,或不使用该参数。
【返回值】返回转换后的浮点型数;若不能转换或字符串为空,则返回 0.0。
使用 atof( str ) 与使用 strtod(str, NULL) 结果相同。
一般应用方法为:
char str[]="123.45";
double d=atof(str);
printf("%.2lf", d ); //输出123.45
Ⅶ 请问C语言中如何将int转换为float
把int
a;转换为float类型有两种办法:
1、手动强制转换:
float
b
=
(float)a;
//强制转换
2、自动转换,基本上所有语言都是会在混合运算时自动强转为统一数据类型,统一为最高精度的,所以
a*1.0
或
a/1.0就可以:
float
b
=
a*1.0;
//自动转换
Ⅷ C语言中怎么将一个整形数组转化为一个float或者int类型数字比如 int a[5]={1,2,
intconvert(inta[],intn)//n为数组元素个数
{
inti,sum;
for(i=0,sum=0;i<n;i++)
{
sum*=10;
sum+=a[i];
}
returnsum;//将结果返回给指定的整型变量
}