Euler # 26, wie rationale Zahl in String mit besserer Präzision zu konvertieren?

7

Ich möchte 1/7 mit besserer Genauigkeit erhalten, aber es wurde abgeschnitten. Wie kann ich eine bessere Genauigkeit erhalten, wenn ich eine rationale Zahl umwandle?

%Vor%     
grokus 12.11.2009, 03:54
quelle

4 Antworten

9

Python verfügt über eine integrierte Bibliothek für Berechnungen mit beliebiger Genauigkeit: Dezimal. Zum Beispiel:

%Vor%

Weitere Informationen finden Sie in der Python-Dezimaldokumentation . Sie können die Genauigkeit so ändern, wie Sie sie benötigen.

    
Daniel G 12.11.2009, 04:34
quelle
6

Sie könnten den Zähler mit einem großen 10 ^ N multiplizieren und mit beliebigen Ganzzahlen festhalten.

BEARBEITEN

ich meine:

%Vor%

Pythons ganze Zahlen sind willkürliche Genauigkeit. Pythons Gleitkommas sind niemals willkürliche Präzision. (Sie müssten Dezimal verwenden, wie eine andere Antwort darauf hingewiesen hat)

    
Jimmy 12.11.2009 04:04
quelle
3

Perl benutzen (weil ich Python nicht schreiben kann; -):

%Vor% %Vor%

Wie Sie von Hand überprüfen können, wiederholen sich die Ziffern. Drucken mit "%.50f" gibt Ihnen die Illusion mit höherer Genauigkeit.

    
Sinan Ünür 12.11.2009 04:08
quelle
2

Mit gmpy :

%Vor%

Sie können es nicht mit normalen Schwimmern machen - sie haben einfach nicht genug Präzision für 50 Ziffern! Ich kann mir vorstellen, dass es einen Weg gibt, es (in 2.6 oder besser) mit fractions.Fraction zu machen, aber ich kenne keine Möglichkeit, es anders als '1/7' zu formatieren (in Ihrem Fall nicht sehr nützlich! -).

    
Alex Martelli 12.11.2009 04:10
quelle