错误C2296:'%':非法,左操作数在C ++中的类型为'double'

时间:2013-11-27 08:26:27

标签: c++ double

我必须使用'%'和双数字,但在C ++中它不起作用。 例如:

double x;
temp = x%10;

我收到此错误:

error C2296: '%' : illegal, left operand has type 'double' 

如果不将数字从double转换为整数,如何解决此问题? 如果我转换它,我将失去小部分,我不想要。

还有其他选择吗?

2 个答案:

答案 0 :(得分:14)

%未定义为双打,但您可以使用fmod代替:

  

计算除法的剩余部分   返回numer / denom的浮点余数(舍入为零):

来自http://www.cplusplus.com/reference/cmath/fmod/的示例(适用于C ++):

#include <cmath>       /* fmod */
#include <iostream>

int main ()
{
  std::cout << "fmod of 5.3 / 2 is " <<  std::fmod (5.3, 2) << std::endl;
  return 0;
}

答案 1 :(得分:3)

使用fmod功能

#include <math.h>

double x;
temp = fmod(x, 10.0);