JavaScript到C++转换:与%操作员的错误

JavaScript到C++转换:与%操作员的错误,c++,C++,JavaScript: var lon2 = (lon1.toRad()+L+3*Math.PI)%(2*Math.PI) - Math.PI; 我已转换为c++: double lon2 = (Deg2Rad(lon1)+L+3*PI)%(2*PI) - PI; 注意:Deg2Rad func返回double,PI也是double,L和lon1也是double。然后我得到了同一行的以下错误: error C2296: '%' : illegal, left operand has type

JavaScript:

var lon2 = (lon1.toRad()+L+3*Math.PI)%(2*Math.PI) - Math.PI;
我已转换为c++:

double lon2 = (Deg2Rad(lon1)+L+3*PI)%(2*PI) - PI;
注意:Deg2Rad func返回double,PI也是double,L和lon1也是double。然后我得到了同一行的以下错误:

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

这个模%的错误是什么?< /P> < P>对于浮点数并不是只定义整数类型的模算符,使用它或考虑改变你的计算方式。< /P> < P> %只为整数定义。使用中的函数计算浮点数浮点数或双精度浮点数的模。

C++不会对双精度浮点数执行模运算-我建议在中使用fmod


如果您想对它非常感兴趣,可以重载modulo%运算符来处理所需的数据类型。

不要发送感叹号。事实上,JavaScript规范特别指出,它的%实现更类似于fmod,而不是%