C 这是GMP 4.1.2中的一个缺陷还是我';我做错了?
我将字符串C 这是GMP 4.1.2中的一个缺陷还是我';我做错了?,c,gmp,C,Gmp,我将字符串“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 ); re
“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静态库的网址。TIA.您应该检查
mpf\u set\u str的返回值。成功时返回0
,失败时返回-1
。在这种情况下,它将返回一个故障,n1
保持不变mpf\u init
将其初始化为零,因此使用mpf\u integer\u p
测试零是否为整数将返回true。您应该检查mpf\u set\u str
的返回值。成功时返回0
,失败时返回-1
。在这种情况下,它将返回一个故障,n1
保持不变mpf_init
将其初始化为零,因此使用mpf_integer\u p
测试零是否为整数将返回true