请问C语言问题:float型数据转int,把整数部分和小数部分分开放在两个int型变量里,怎么尽量减小误差?例:12345.53231,如何把整数部分存在int a 里,且a==12345?把小数存在变量int b里,且b==53231?(误差

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 19:33:12

请问C语言问题:float型数据转int,把整数部分和小数部分分开放在两个int型变量里,怎么尽量减小误差?例:12345.53231,如何把整数部分存在int a 里,且a==12345?把小数存在变量int b里,且b==53231?(误差
请问C语言问题:float型数据转int,把整数部分和小数部分分开放在两个int型变量里,怎么尽量减小误差?
例:12345.53231,如何把整数部分存在int a 里,且a==12345?把小数存在变量int b里,且b==53231?(误差在+-2以内就行!)

请问C语言问题:float型数据转int,把整数部分和小数部分分开放在两个int型变量里,怎么尽量减小误差?例:12345.53231,如何把整数部分存在int a 里,且a==12345?把小数存在变量int b里,且b==53231?(误差
float型数据精度只有 有效数字 6-7 位,所以存放 12345.53231 时,只能精确到 12345.53.

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

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

#include

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

请问C语言问题:float型数据转int,把整数部分和小数部分分开放在两个int型变量里,怎么尽量减小误差?例:12345.53231,如何把整数部分存在int a 里,且a==12345?把小数存在变量int b里,且b==53231?(误差 初学C语言 时针分针夹角中数据计算的问题#include int main(){ int m,h; float x; scanf(%d%d,&h,&m); x=5.5*m-30*h; if (x C语言中的float.double.int…怎样理解啊? 一道C语言的简单的算术问题,请说明运算顺序.定义 int a=7;float x=2.5;y=4.7;请问 x+a%3*(int)(x+y)%2/4 等于多少? C语言问题.一个int型与一个long型数据运算,先将int型转换成long型,啥意思?说详细一点.最好举例. C语言中,表达式18/4*sqrt(4.0)/8的数据类型为什么?是INT,还是FLOAT,还是DOUBLE,是不是C语言中不可能有数据类型是FLOAT的式子,因为所有FLOAT运算时都转成了DOUBLE型的. C语言改错题...#include #define N 10;float max(float a[], int n);void main(){ float data[N]; int i; for(i=0;i C语言求平均数问题#include #define N 5 void main(int){int c[N],d[N],f[N];int i,j,m;float s=0.0,h=0.0,k=0.0;for(i=0;i C语言指针问题 *score 与score 有什么区别#includemain(){void average(float *p,int n);void search(float (*p)[4],int n);float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};average(* score,12);search(score,2);}void average(float * p C语言 结构型变量问题struct xy{int x;float y[10];}xy1={1,{1.0,2.0,3.0}}书上都是这样给结构性变量赋值的,但是我不太明白,为什么是 xy1 而不是直接用xy呢? C语言中输入float型数据怎么 取整数部分算法 加上小数部分 如3.2=3+0.2 C语言基础题设a是int型变量,x是float型变量,为了使a=10,x=18.18,函数scanf(“**a=%d,x=%f** ,&a,&x)执行时,正确的数据输入方式是 小弟初学C语言,求指教 在 c语言中int long unsigned 和 char这四种类型数据的转换规律是_____.请问是为什么?这种转换是啥玩意 请问 以下C/C++程序的具体意思是?#include #include void fft(float *xr, float *xi, int nr, float T);void main ( ){ float p[512],x[512],y[512]; int i,j; FILE *fp1,*fp2,*fp3; ////void fft(float *xr, float *xi, int nr, float T){ int 请帮我找一下求解一个用二分法求方程近似解的c语言代码的问题,#include #include #include /*2^x+3x-7*/ int main(void){float a=0.0f;float b=2.0f;float x=0.0f;float y=1.0f;float y_1=0.0f;float y_2=0.0f; for(;b-a>0.1;)/*二分法 C语言比较5个数的大小程序问题#include int main(){int number[5] = {0};//存储五个数float cur = 0;//当前要比较的数的下标float max = number[0];//当前最大的数值,初始为数组中第一个数int index = 0;//当前最大 C语言中定义float C语言的一道题下面对于变量的定义,错误的是 A.int total B.double_debug; C.float long$short;D.float Conter