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

Rom*_*lus 6 c++ double

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

double x;
temp = x%10;
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

error C2296: '%' : illegal, left operand has type 'double' 
Run Code Online (Sandbox Code Playgroud)

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

还有另一种选择吗?

Nem*_*ric 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;
}
Run Code Online (Sandbox Code Playgroud)