Hallo zusammen,
es gibt ja durchaus "Zahlen" mit mehr als nur "wie viel auch immer" Nachkommastellen.
Ein Paar Beispiele hier sind die "Eulersche Zahl" oder auch "Pi".
Wie ist es möglich hier zum Beispiel die ersten 10.000 Nachkommastellen errechnen und dann auch anzeigen zu lassen?
[Nein ich möchte nicht wissen wie die Werte berechnet werden können, sondern eher wie ich das Ergebnis festhalen kann 😛 ]
Danke für Eure Tipps!
Es gibt keinen Datentyp, der unendlich viele Nachkommastellen zulässt, was PI nun mal hat.
Auch die Konstante Math.PI in C# hat daher ein Limit. Zudem hat ja PI nicht eine fixe Formel, sondern es gibt verschiedene Ansätze PI zu berechnen (zB Monte-Carlo-Methode).
Du kannst nur die Datentypen nehmen, die Dir das System zur Verfügung stellt.
Die absolut größte in dieser Hinsicht ist BigInteger.
BigDecimal wie Java hat C# nicht; decimal in c# ist aber 128Bit groß, was schon ziemlich viele Nachkommazahlen zuläßt.
Es gibt noch ein paar Projekte, wie BigRational, die dieses Problem anfassen; vom .NET nativ gibts hier aber nichts und ist aktuell auch nicht vorgesehen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo g0su,
schon alleine, da der Speicher begrenzt ist, kannst du nie Zahlen mit unbegrenzt vielen Nachkommastellen exakt speichern/darstellen. Das sollte aber unmittelbar klar sein.
Es kann also nur darum gehen, Zahlen mit soviel Nachkommastellen, wie benötigt zu speichern/darzustellen.
Das Berechnen von Nachkommastellen von PI ist ein gängiger Sport. Wenn du suchst, wirst du das sicher fündig.
Was das "Festhalten" angeht, kannst du eine solche Zahl auch einfach als (Ziffern-)String in eine Datei speichern.
herbivore
Die Antwort ist eigentlich ganz einfach: als String 😉
Denn selbst für die Berechnungen mit den Größenordnungen des Universums reichen ~40 Nachkommastellen aus: Pi: Mehr als 39 Stellen sind Luxus