Ungültig, da der rechte Operand vom Typ 'double' ist



  • Hi, ich hab da ein kleines Problem mit einer Formel :

    *p_CoWert=(p_KH/2,8)*(10^(7.91-p_PH));

    nun gibt mir der Compiler (MVC++) folgenden Fehler bekannt :

    Error bla bla, Ungültig, da der rechte Operand vom Typ 'double' ist!

    Kann doch eigentlich nicht sein, daß man nur mit "int" Werten die Zehnerpotenz nehmen kann, oder etwa doch?

    oder muß ich die Formel umschreiben, so daß der Compiler nichts mehr zu meckern hat?
    Danke
    Enrico Pardri



  • das is ja der hammer, man 😮 😮 😮 😮



  • hoch macht man glaub ich mit pow()



  • *p_CoWert=(p_KH/2,8)*(10^(7.91-p_PH));

    2,8 meinst du vielleicht 2.8, da 2,8 in dem Fall == 8 ist! und 10^x wird in C++ mit std::pow(10,x); geschrieben, dazu musst du <cmath> includieren (nicht mit ^, das ist ein Bitoperator)



  • Enrico Pardri schrieb:

    *p_CoWert=(p_KH/2,8)*(10^(7.91-p_PH));

    Und wenn sich aus *p_CoWert schließen lässt, dass p_CoWert ein Zeiger ist, dann sind wohl auch p_KH und p_PH ebenfalls Zeiger. Diese müssen noch dereferenziert werden

    *p_CoWert = (*p_KH / 2.8) * std::pow(10, (7.91 - *p_PH));

    Hmm, diese Zahlen erinnern mich irgendwie an Chemie 😉


Anmelden zum Antworten