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);//四舍五入

整型除以整型是取整除,得不到浮点型数据。比如int a=4,b=5则a/b=0,要想得到a/b=0.8必须把其中之一强制为float型,如(float)a/b=0.8或a/(float)b=0.8。把整型数直接赋给浮点型变量要告警,不算大错……

一个办法是不输出f后面的小数部分
printf("%.0f',s)
%f输出默认输出6位小数部分,自定义输出小数的位数的方式是%x.yf
x是整数部分的位数,不足的话前面空格,y是小数部分的位数,xy都是正整数,中间用点隔开

还有一种就是强制转换,转换成int型
printf("%d",(int)s);

printf函数是输出
%f 以小数形式输出,小数点后面有6位小数
%d 以十进制整型输出
把printf("%f\n",s)改为printf("%d\n",s)

问题就在你的最后一句话,printf("%d",s);就没有问题了。

用强制格式转换,例如 int a;float b=5.35;a=(int)b;那么b=5

%d就行了,不然就强制转换,int()就可以了


兖州市15860525903: C语言的浮点型怎么转换为整型? -
尚庞依木: C语言有以下几种取整方法:1、直接赋值给整数变量.如:int i = 2.5; 或 i = (int) 2.5;这种方法采用的是团森舍去小数部分,能用于你的问题.2、C/C++中的整数除法运算符“/”本身就有取整功能(int / int),而下面介绍的取整函数返回...

兖州市15860525903: c语言中如何将浮点型数据变成整数型数据 -
尚庞依木: #include <stdio.h> #include <math.h> int main() {int b;float a=3.1415926;printf("%f\n",a);b=(int)a;printf("%d\n",b); }

兖州市15860525903: C语言,一个浮点数(两位小数),输出这个数的各个数字怎么编,输出的单个数字是整型. -
尚庞依木: #include <stdio.h>#include <stdlib.h>#include <string.h>int main(void){ double d; scanf("%lf", &d); int dec, sign, i; char *str = fcvt(d, 2, &dec, &sign); if (sign) putchar('-'); for (i = 0; i != strlen(str); ++i){ if (i == dec) putchar('.'); putchar(str[i]); } system("...

兖州市15860525903: 在编程时怎样把浮点型的数变成整型 -
尚庞依木: 浮点型强转整形会丢失精度,也就是小数后面的数会截掉,比如变量i时浮点型要转换为整形时,在变量i前面加个括号,括号里面写上你想转的类型 (int)i

兖州市15860525903: C语言中如何把浮点数1.234567转换成整数123? -
尚庞依木: #include "stdio.h" main() { float a=1.234567; int b; a=a*100; b=(int)a; printf("%d",b); }

兖州市15860525903: C中 如何将浮点数转化成整数,如何判定一个浮点数是否等于其整数部分? -
尚庞依木: 强制转换 float b = 2.704; int a = (int)b; 那么a就是2了(不用四舍五入).if(x-(int)x == 0) {...} 就可以判断你的第二问

兖州市15860525903: C++中怎么在运算中强制将浮点型转换成整型? -
尚庞依木: int(a);//就是把浮点数a强制转换成整型 //参考代码 #include <iostream> using namespace std; int main() {float a=12.345;int b=(int)a;cout<<b;return 0; } /*运行结果: 12 */

兖州市15860525903: 浮点数强制转换成整型为什么只取整数部分? -
尚庞依木: float f=3.6712; int i,j; i=(int)f;//取整(只保留整数部分),这个是C语言规定,没有什么好解释的. j=(int)(f+0.5);//四舍五入;

兖州市15860525903: C语言关于整型和浮点型的转换求助 -
尚庞依木: 建议使用大数运算的方法! 用数组或者是链表存储你的数据!

兖州市15860525903: c语言浮点数与整型的比较问题. -
尚庞依木: 在c语言中,键盘中输入字符都对应了一个ascii编码.可以用ascii码进行比较 也可以先把浮点数都改成整数型的,再进行比较,比如你的浮点数是两位小数的,就乘以100,再对两个数进行比较.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网