当前位置:首页 » 编程语言 » c语言float转int

c语言float转int

发布时间: 2024-09-19 13:42:51

① 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运行的结果只有强制转换有用,不知道是不是我写的语句有问题

② 请问C语言问题:float型数据转int,把整数部分和小数部分分开放在两个int型变量里,怎么尽量减小误差

float型数据精度只有 有效数字 6-7 位,所以存放 12345.53231 时,只能精确到 12345.53。

要存放 12345.53231,可以用 double 或 char s[].

double 仍有 10进制到2进制,2进制回10进制的误差问题。

#include <stdio.h>

int main(){

double x = 12345.53231;

int a,b;char s[30];

int i;a = (int) x; // a 没问题

b = (x-a) * 100000; // 这里要假定取多少位小数

printf("a=%d b=%d\n",a,b);

sprintf(s,"%15.5lf",x); //用这个方法转字符串。

// 当然最好是一开始声明 char s[30]=“12345.53231”;就不必转化。

sscanf(s,"%d.%d",&a,&b); // 注意 格式里 有个小数点符号

printf("a=%d b=%d\n",a,b);

}

输出:

a=12345 b=53231

a=12345 b=53231

热点内容
java直播网站源码 发布:2025-07-04 14:46:35 浏览:169
安卓应用市场消费记录怎么删除 发布:2025-07-04 14:39:47 浏览:30
知道一个服务器的ip地址 发布:2025-07-04 14:20:33 浏览:597
苹果7锁屏密码怎么改 发布:2025-07-04 14:04:44 浏览:710
P三零是什么配置 发布:2025-07-04 13:58:41 浏览:361
哪个安卓机有长方形home键 发布:2025-07-04 13:43:58 浏览:861
android脚本录制 发布:2025-07-04 13:17:47 浏览:342
嵌入式和安卓哪个硬件成本高 发布:2025-07-04 13:05:56 浏览:229
360代理服务器怎么设置 发布:2025-07-04 12:49:49 浏览:515
iphone在哪清除缓存 发布:2025-07-04 12:49:38 浏览:340