/ / JavaScript in C ++ - Konvertierung: Fehler mit dem Operator% - c ++

Konvertierung von JavaScript in C ++: Fehler mit dem Operator% - C ++

JavaScript:

var lon2 = (lon1.toRad()+L+3*Math.PI)%(2*Math.PI) - Math.PI;

Ich habe nach C ++ konvertiert:

double lon2 = (Deg2Rad(lon1)+L+3*PI)%(2*PI) - PI;

Hinweis: Deg2Rad-Funktion gibt doppelt zurück, PI ist ebenfalls doppelt, L und lon1 ebenfalls doppelt. Dann habe ich folgende Fehler für dieselbe Zeile erhalten:

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

Was ist daran falsch? % modulo?

Antworten:

6 für die Antwort № 1

Der Modulo-Operator ist nicht für definiert floats und doubles (nur ganzzahlige Typen) verwenden fmod Stattdessen (oder überlegen Sie, wie Sie Ihre Berechnung durchführen möchten).


4 für die Antwort № 2

C ++ führt keine Modulo-Operation für a aus double - Ich schlage vor zu verwenden fmod() im <math.h>

Wenn Sie sehr scharf darauf sein wollten, könnten Sie das Modulo überladen (%) Operator, um Ihre gewünschten Datentypen zu bearbeiten.


2 für die Antwort № 3

% ist nur für ganze Zahlen definiert. Verwenden Sie die fmod () Funktion in <cmath> Berechnen des Moduls einer Gleitkommazahl (float oder double).