2017-05-18 3 views
-1

Wie kann ich Math.sqrt(); und eine bestimmte Anzahl von Dezimalstellen bekommen?Quadratwurzel mit beliebiger Dezimalzahl

Beispielcode (Art):

Console.WriteLine(getSqrt(2, 100)); 
    static string getSqrt(double inVal, int inLenght) 
    { 
     return ((Math.Sqrt(inVal)).ToString()); // inLenght is number of decimal places 
    } 

Aktuell mit Math.sqrt bekomme ich 13 Dezimalstellen, aber ich möchte in der Lage 100 oder 1000 oder mehr sein bekommen, (auch als String will).

Ich habe ein wenig auf BigIntegers (System.Numerics) aber Idk geschaut.

+0

tun eine Google-Suche auf 'string.Format' und dessen Verwendung mit dort Dezimalzahlen Tonnen Beispiele Formatierung – MethodMan

+0

Das Problem ist, dass man nur so gehen kann weit mit Double/Float/Dezimal-Datentypen. Wenn Sie eine beliebige Anzahl von Dezimalstellen erhalten möchten, müssen Sie die entsprechenden Datenstrukturen erhalten. Wie Sie festgestellt haben, gibt es große Integer-Klassen. Sie wären jedoch an etwas interessiert, das die Fähigkeit besitzt, hochpräzise Werte zu speichern (Integer vs. Gleitkomma). Dies kann in anderen Umgebungen wie Matlab, R, Mathematica erfolgen. –

+0

@MethodMan ziemlich sicher Zeichenfolge Formatierung wird nicht das Problem der 100 oder 1000 von Dezimalstellen mit einem Doppel zu lösen. Du brauchst ein beliebiges Percision-Paket, wie Java's BigDecimal, und du wirst wahrscheinlich deinen eigenen Newton Raphson für Square-Roots rollen müssen ... –

Antwort