如何在C中除以两个整数并得到double或float答案?

最佳答案

您需要将一个或另一个转换为floatdouble

int x = 1;
int y = 3;

// Before
x / y; // (0!)

// After
((double)x) / y; // (0.33333...)
x / ((double)y); // (0.33333...)

当然,请确保将除法结果存储在doublefloat中!如果将结果存储在另一个int中,对您没有任何好处。

关于@Chad的评论(“[tailsPerField setIntValue:tailsPer]”):

当您有 setIntValue 等可用时,请勿将double或float传递给 setDoubleValue 。这可能与我在评论中提到的问题相同,在这里您未使用显式强制转换,并且由于将double读取为int而获得了无效的值。

例如,在我的系统上,文件:
#include <stdio.h>
int main()
{
    double x = 3.14;
    printf("%d", x);
    return 0;
}

输出:

1374389535

因为试图将double读取为int类型。

关于c - 如何获得整数除法的分数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2976011/

10-11 22:59
查看更多