c - 为什么这段代码不计算负数的立方根?

标签 c root cube

我正在用 C 语言编写一个函数,用于求数字的根,我偶然发现了一个问题:它对于正数的立方根和平方根非常有效,但是当我尝试求负数的立方根时数字,返回:-1.#IND00 我尝试研究,结果发现返回的数字太大,但我不明白为什么...... ('rooter' 是函数,x 是被数,ind 是度数。)

我还尝试输入“0.66”而不是 1/ind,但出现了相同的结果。

float rooter(int x, int ind)
{
    if(ind%2==0)
    {
        if (x>=0)
            return ( pow(x, 1.0/ind) );
        else
            errore=1;
        return -1;
    }
    else
    {
        return ( pow(x, (float)1.0/ind) );
    }
}

最佳答案

pow不接受非整数指数的负基数。 (可能是因为在传统上定义的特殊情况下工作太繁重,特别是当它预计使用对数实现时。)

关于c - 为什么这段代码不计算负数的立方根?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58770730/

相关文章:

c - xmlNewChild并不总是写入元素的值

c - ARM NEON 内部函数将 D(64 位)寄存器转换为 Q(128 位)寄存器的低半部分,而上半部分未定义

python - Tcl 错误 : can't iconify: override-redirect flag is set

mdx - 过滤度量(或删除异常值)

database - 如何构造/实现多维数据/数据立方体

C - 未初始化的指针 -> 指向数组

c - 以数字作为变量的字符串,Unix C 问题

ubuntu - 使用单个消息将 gksudo 替换为 pkexec

android - 在已 root 的 Android 设备上,如何打开 < 1024 的端口?

mysql - 在 Pentaho Aggregation Designer 中创建的聚合表不存在于查询的 from 子句中