我一直在各种图形头文件中看到这个常量弹出

0.0039215689

这似乎和颜色有关?

下面是谷歌的首支热门单曲:

void RDP_G_SETFOGCOLOR(void)
{
    Gfx.FogColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f;
    Gfx.FogColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f;
    Gfx.FogColor.B = _SHIFTR(w1, 8, 8) * 0.0039215689f;
    Gfx.FogColor.A = _SHIFTR(w1, 0, 8) * 0.0039215689f;
}

void RDP_G_SETBLENDCOLOR(void)
{
    Gfx.BlendColor.R = _SHIFTR(w1, 24, 8) * 0.0039215689f;
    Gfx.BlendColor.G = _SHIFTR(w1, 16, 8) * 0.0039215689f;
    Gfx.BlendColor.B = _SHIFTR(w1, 8, 8) * 0.0039215689f;
    Gfx.BlendColor.A = _SHIFTR(w1, 0, 8) * 0.0039215689f;

    if(OpenGL.Ext_FragmentProgram && (System.Options & BRDP_COMBINER)) {
        glProgramEnvParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, 2, Gfx.BlendColor.R, Gfx.BlendColor.G, Gfx.BlendColor.B, Gfx.BlendColor.A);
    }
}

//...more like this

这个数字代表什么?为什么没有人把它声明为const?

我在谷歌上找不到任何可以解释的东西。

像这样的新闻报道表明,上述数字可能是由于编程错误而出现的。

一个美国人突然冒了出来 到他当地的加油站去买 一包烟,却发现是他的 信用卡收费23,148,855,308,184,500美元。 这是23万亿美元(14英镑) 千万亿)——是美国的很多倍 国家债务。*

在十六进制中,它是$523DC2E199EBB4,乍一看并不是很有趣。

有人知道是什么编程错误导致的吗?

什么是神奇数字?

为什么要避免呢?

有没有合适的情况?