我必须使用'%'和双数字,但在C ++中它不起作用。 例如:
double x;
temp = x%10;
我收到此错误:
error C2296: '%' : illegal, left operand has type 'double'
如果不将数字从double转换为整数,如何解决此问题? 如果我转换它,我将失去小部分,我不想要。
还有其他选择吗?
答案 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);