从“int”到“double *”的转换无效

时间:2011-04-07 17:31:59

标签: c++

我有这行代码:

int g = modf(ans*power, 1)*10;

它给了我错误:

  

从'int'到'double *'的转换无效。

ans定义为:

double ans = 1.0/d;

权力定义为:

int power = pow(10,x);

和电源使用的x定义为:

for(int x = 0; x < 50; x++) {

我看不到我在哪里使用指针。如果您需要更多代码,请询问。

(我也试过制作导致错误的代码行:

int g = (int)modf(ans*power, 1)*10;

但这也不起作用。)

4 个答案:

答案 0 :(得分:4)

modf(ans*power, 1)不好

double smthng = 1.0; modf(ans*power, &smthng)很好。

http://linux.die.net/man/3/modf

答案 1 :(得分:1)

modf(double x, double * intpart);
                     ^^^

请参阅modf

答案 2 :(得分:1)

I don't see where I am using a pointer:你不是,那就是 是问题。查看modf的签名:

double modf( double, double* );

它需要double*作为第二个参数;你传递了它 int

答案 3 :(得分:-1)

modf期望指向double的指针作为其第二个参数。请参阅here