kubikwurzel negativer zahlen



  • HALL0.

    ich möchte in meinem programm gerne von negativen zahlen die kubikwurzel berechnen, leider scheint es so nicht zu funktionieren:

    zahl = (double)1/3;
    zahl = pow((double)-2,(double)zahl);
    

    hat jemand eine bessere idee?

    DANKE.
    STICK.



  • man: pow:

    The function pow(x, y) checks to see if x < 0 and y is not an integer, in the event this is true, the global variable errno is set to EDOM and on the VAX and Tahoe generate a reserved operand fault.

    Oder auf Deutsch: von negativen Zahlen kannst du nur ganzzahlige Potenzen bilden. Aber du kannst das -1 ja "ausklammern", um auf vernünftige Werte zu kommen:

    zahl = - pow( 2 , 1.0/3);
    

    Wenn du mit Variablen arbeitest, versuch folgendes:

    int sign(double val)
    {
      return val>=0 ? 1 : -1;
    }
    
    zahl = sign(wert) * pow( fabs(wert), 1.0/3 );
    

Anmelden zum Antworten