C语言中的浮点除法

时间:2014-09-24 01:54:12

标签: c

#include <stdio.h>
#include <conio.h>
#include <math.h>   
float t, delt = 0.004000,n;

printf("enter the value for t=");
scanf("%f", &t);
n = t/ delt;
printf("n is %f",n);
getch();

输出: 输入t = 1的值 n是249.999985

我期待250.我做错了什么?

1 个答案:

答案 0 :(得分:3)

你面临着floating point representations近似的常见问题。您可能希望执行以下操作之一:

  • Round your answer使用无偏见的舍入策略。
  • 在打印之前截断零小数位的答案(使用%.0f之类的东西)。
  • 使用任意精度的算术库,例如GMP

其中哪一项是明智的,完全取决于您的申请的限制。