如何在 C 中除以两个整数并获得双精度或浮点答案?
问问题
91317 次
2 回答
46
您需要将一个或另一个转换为 a float
or double
。
int x = 1;
int y = 3;
// Before
x / y; // (0!)
// After
((double)x) / y; // (0.33333...)
x / ((double)y); // (0.33333...)
当然,请确保将除法的结果double
存储在 a or中float
!如果您将结果存储在另一个中,这对您没有任何好处int
。
关于@Chad 的评论(“ [tailsPerField setIntValue:tailsPer]
”):
setIntValue
当你有setDoubleValue
等可用时,不要传递双精度或浮点数。这可能与我在评论中提到的问题相同,您没有使用显式强制转换,并且您得到的值无效,因为双精度值被读取为 int。
例如,在我的系统上,文件:
#include <stdio.h>
int main()
{
double x = 3.14;
printf("%d", x);
return 0;
}
输出:
1374389535
因为试图将 double 读取为 int。
于 2010-06-04T16:31:51.937 回答
4
使用类型转换。例如,
main()
{
float a;
int b = 2, c = 3;
a = (float) b / (float) c; // This is type-casting
printf("%f", a);
}
于 2014-09-22T03:04:22.430 回答