如何获得整数除法中的分数?

Cha*_*sch 24 c integer-division

你如何划分两个整数并在C中获得双重或浮动答案?

Mar*_*off 42

你需要将一个或另一个投射到floatdouble.

int x = 1;
int y = 3;

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

// After
((double)x) / y; // (0.33333...)
x / ((double)y); // (0.33333...)
Run Code Online (Sandbox Code Playgroud)

当然,请确保您将分部的结果存储在double或中float!如果将结果存储在另一个中,对您没有任何好处int.


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

setIntValue当你有setDoubleValue等等时,不要传递双人或漂浮物.这可能与我在评论中提到的问题相同,你没有使用显式转换,并且你得到一个无效值,因为double被读作int.

例如,在我的系统上,文件:

#include <stdio.h>
int main()
{
    double x = 3.14;
    printf("%d", x);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

1374389535

因为试图将double读作int.