SQRT (Wurzel-Funktion) nur mit Typ DBL oder kleiner ?



  • Hallo,

    habe mich gerade erst registirert und weiß daß man normalerweisle nicht gleich eine Frage posten sollte aber ich sitz hier vor einem kleinen TestProgram und komm da nicht weiter, würde aber gerne weiter machen 😃

    Das Problem liegt darin daß (Wenn ich es jetzt richtig verstanden habe) dei SQRT Funktion von Visual C++ (aus der math.h) nur Wurzeln von Zahlen errechnen kann die vom typ double oder kleiner sind .

    In Meinem Fall müßte ich z.b. die Wurzel von einem typ __int64, errechnen und da kommt halt dann immer ein falsches Ergbnis raus :(.

    Naja und steh ich da und bin der Meinung das geht nicht..laut Hilfe-Text...aber das kann doch nicht sein , oder ?

    Oder muß man da was tricksen, damit der auch mit höheren Werten die Wurzeln errechnen kann :-?

    Vielen Dank
    ray



  • hm, notfalls selberschreiben, such mal nach im C++ Forum.

    Devil



  • Re,

    also ich hab da mal ein Code Schnippsel geunfden und Versucht umzubauen aber das gibt nur Fehlermeldungen. In diesem Codeschnippsel sind alle benötigten Variabeln als float definiert (ist ja auch logisch).

    Problem ist halt daß beim 1. Durchlauf der Wert noch zu groß ist um in float reinzupassen somit bekomme ich dann immer nur -zahlen oder sosntigen Schnick-Schnack als Ergbnis 😞

    ray



  • Hm... der Wertebereich von __int64 paßt schon in einen double rein - nur halt nicht mit voller Genauigkeit. SQRT ist halt nur auf der FPU implementiert.
    Wenn du's für __int64 brauchst, hilft nur ins: selbst implementieren (ist dann aber nicht wahnwitzig schnell).

    Es gibt ne schöne Seite im Internetz, die speziell links zu Quadratwurzelalgorithmen sammelt.
    http://www.google.com/search?q=Square+Root+Algorithm


Log in to reply