小编lil*_*obo的帖子

为什么循环内的浮点数乘法不如循环外的精确?

我正在编写一个程序来计算sin(x)in ,使用泰勒级数x[0, 1]其中包括将其某些项提升到一定的幂。由于我是 C 新手,我决定编写自己的pow()函数只是为了练习。但后来我注意到我的程序无法正确计算正弦函数。经过检查,我发现在循环中将数字求幂不会产生与简单直接乘法相同的结果...v * v * v...

这是我的powr()功能和结果差异:

#include <stdio.h>    

double powr(double base, int power)
{
    if (power == 0) {
        base = 1;
    } else if (power > 0) {
        for (int i = 1; i < power; i++) {
            base *= base;
        }
    } else {
        // power is negative.
    }
    printf("In loop number to a power of 3: %lf\n", base);
    double hard_coded = 0.99 * …
Run Code Online (Sandbox Code Playgroud)

c floating-point precision for-loop pow

1
推荐指数
1
解决办法
131
查看次数

标签 统计

c ×1

floating-point ×1

for-loop ×1

pow ×1

precision ×1