我正在尝试编写一个函数的 C 代码,该函数接受一个整数从0to125并仅当它是整数( 1,2,3,4,5 )时才返回该整数的立方根,如果不是整数,0则返回。所以我写了这段代码:
unsigned int cubic(unsigned int n) {
if (n > 125)
return 0;
double root = pow(n, (1 / 3.));
double rem = (double)(roundf(root)) - root;
if (rem != 0)
return 0;
else
return roundf(root);
}
Run Code Online (Sandbox Code Playgroud)
此函数适用于除 number64和之外的所有情况125。在这些情况下,它返回的0不是这些数字的立方根,分别是4和5。有人可以向我解释为什么会发生这种情况吗?