A. c语言:浮点数变为整数的一个疑惑
因为你的a做了显式转换也还是有浮点数的形式的,但值确实是变成3了,关键在于双精度浮点数和整型数的差别和printf函数采用的栈输出结构;浮点型的位数比整型高,所以a输入进去以后,有效位数较双精度浮点数较小,因此存在着一堆0值,如:00000000003.1428570000,00000000000003,然而在读时你采用整型,根据编译器的差别可能只读前8位或前四位,你这个数前面那么多0,%d读出来的肯定也是0嘛。其次,int(a)是c++的整型析构函数((int)a才是强制转换(我说的显示转换)),作用是直接提取a的整数部分,用这个做浮点数取整还准确一些,推荐用int(a)以%d输出即可。
B. C语言浮点型转整型
http://..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了,为一个很大的数字,很可能为负数。
C. 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);//四舍五入
D. C语言中float型转换成int型是什么规则
#include<stdio.h>
#include<math.h>
int main()
{
int i;
int i2;
int siz;
float P[14]={0,1,2,3,1,1,5,1,2.3,6.1,500,130,5,0};
siz=sizeof(P);//打印出数组P的字节数
printf("sizeof=%d ",siz);
for(i=0;i<14;i++)
{
printf("P[intp]=%d ",floor(P[i]));//打印出P数组的每一个元素值,以int型显示
}
for(i2=0;i2<14;i2++)
{
printf("P[floatp]=%f ",P[i2]);//打印出P数组的每一个元素值,以float型显示
}
}
好像VC++6.0运行的结果只有强制转换有用,不知道是不是我写的语句有问题
E. C语言中如何实现将一个浮点数float转成int类型
强制类型转换
比如:
float a = 10.5;
int b = (int)a;
这样 就转换了,但是不推荐高精度转低精度 会丢失精度的
就像这个,a是10.5 转换后变成10了小了太多
F. C语言中,浮点型数据V,将其转化成整型num,用什么语句
只能通过内存COPY,如果强制做类型转换的话,会丢掉数据
比如
doublef=1.2;
intnum=(int)f;//这种方式会得出num==1,小数部分被丢弃
真正的做法是这样的:
#include"stdio.h"
#include"string.h"
voidmain()
{
floatv=12.3;
intnum;
memcpy(&num,&v,sizeof(num));
printf("%d ",num);
}
这样,浮点数v在内存中各二进制位上的数字全被COPY到num变量的各位上,再把他变成整数输出
你会发现是个很大的数,这个又涉及到浮点数在计算机中的表示方法,这个你可以去找相关资料看下就明白了
G. 在C语言中,如何将一个浮点数变换成整数
需要准备的材料分别有:电脑、C语言编译器。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。
H. C语言关于整型和浮点型的转换求助
c语言中没有四舍五入,将浮点型转换成整形时,只保留小数点前面的数值
I. 在C语言中浮点型怎么转整形不用库函数
强制转换就可以了,比如
float a;
int i;
a=22.333;
i=(int)a;
J. C语言中把浮点型数据该为正数
float n;
可以这样int(n);就变成整数了。要保留两位的话,用printf("%.2f",n);