编写了个小程序,最后结果不大对,是否float会四舍五入?
											   是一个例题,求一棵树的高度,通过一个高的人和一个矮的人与树站成一条直线,用相似三角形原理求出树的高度,2人的身高差/矮个子=(树高-矮个子)/树到高个子的距离。以下是程序代码。
 程序代码:
程序代码:#include<stdio.h>
int main(void)
{
  /*输入数据阶段*/
  float tree_height,tom_height,marry_height,gap;
  float distance_tm=0,distance_tt=0;
  float feet1,feet2;/*利用相似三角形原理计算对象高度,定义树、tom、marry两人身高,身高差,两人的距离,tom到树距离*/   
  printf("Please make a guy to stand between trees and another guy,"
         "they should have a different stature.\n\n");/*说明*/
  tom_height=1.0; /*防止scanf的bug*/
  printf("And then,please import a stature number of the height man: ");
    scanf("%f",&tom_height); /*得到tom的身高*/
  printf("\nThen,import a stature number of the short man:");
    scanf("%f",&marry_height);/*得到marry的身高*/
  printf("how many feets between tree and the hight man:");/*得到树到tom步数*/
    scanf("%f",&feet1);
  printf("how many feets between heightman and the shortman:");/*得到两人之间的步数*/
    scanf("%f",&feet2);
 
  /*化步数和身高为米*/
  feet1*=0.5;
  feet2*=0.5;
  tom_height/=60.0;
  marry_height/=60.0;
  /*开始计算*/
  gap=tom_height-marry_height;
  tree_height=gap/feet2*feet1+marry_height;
  printf("There is %f meter is it.\n",tree_height);
 
  return 0;
}编译并没有错误,但如果输入高个子170 矮个子160 树到高个子步数20 两人之间步数10,得到结果是3.0000,实际计算应该是3.2左右,
如果把矮个子改158,就成了3.002这种,难道计算过程中进行了四舍五入吗?希望解惑

 
											





 
	    




