我正在尝试获取一个精确到小数点后 3 位的 float 变量以进行比较计算。我正在尝试下面的方法,但它不起作用。我不明白为什么不可以,所以请有人告诉我哪里出错了。
此代码的输出是 b = 10000.050617,bb = 10000050 和 fbb = 10000.000
。我希望 fbb 为 10000.050。
int bb; double m,n,p,q,b,t,u,fbb;
m=24.161, n=57.695, p=67.092, q=148.011;
t=p-m; u=q-n;
b=t*t+u*u; bb=b*1000; fbb=bb/1000;
printf("b=%.6lf,bb=%i,fbb=%.3lf\n",b,bb,fbb);
return 0;
最佳答案
当你表演时
fbb = bb/1000;
它将操作视为int/int
并返回一个int
尝试
fbb = ((double)bb)/1000.000;
它将被视为(double)/(double)
并返回一个double
。
关于c - 为什么这段简单的代码不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18913903/