0

对于这段代码,我传递了字符串"kellogs special k",我得到1这意味着字符串是一个整数。我到底做错了什么?还是 GMP 问题?

#define F(x) mpf_t (x); mpf_init( (x) );

long __stdcall FBIGISINTEGER(BSTR p1) {
    USES_CONVERSION;
    F(n1);
    LPSTR sNum1 = W2A( p1 );
    mpf_set_str( n1, sNum1, 10 );
    return mpf_integer_p( n1 );
}

顺便说一句,如果有人建议使用更新的 GMP,请给我 Windows 的静态 LIB 的网址。TIA。

4

1 回答 1

3

您应该检查mpf_set_str. 它会0在成功和-1失败时返回。在这种情况下,它将返回失败并且n1保持不变。mpf_init将其初始化为零,因此测试零是否为整数并mpf_integer_p返回 true。

于 2009-07-14T11:44:56.160 回答