C++写 读内存浮点型小数问题

代码

float 读小数(int 内存地址)
{
    _asm
    {
        mov eax, [内存地址]
        mov eax, [eax]
    }
    return;
}
void _tmain()
{
    printf("%f\n",读小数(0x00040000));
}

这样子读出来的小数是:-1.#IND00

而使用读整数的 就可以读出来准确的整数

int 读整数(int 内存地址)
{
    _asm
    {
        mov eax, [内存地址]
        mov eax, [eax]
    }
    return;
}
 void _tmain()
{
    printf("%d\n",读整数(0x00040000));
}

本人菜鸟,请问高手们 怎样才能准确读出内存中的浮点型小数呢?

你好!既然要读float型的数据,那么你在定义相应内存指针的时候,就要定义成float型的,而不可用int型,否则小数会被忽略。

涉及到小数务必用double类型

 float 读小数(int 内存地址)
{
return *((float *)内存地址);
}
 double fun(double *p)
{
    double *f;
    _asm
    {
        mov eax, p
        mov eax, eax
        mov f,eax
    }
    return *f;
}

int main()
{
    double f = 0.11225;

    double *p = &f;

    printf("%f",fun(p));

    return 0;
}