03.07.2024
Visual Basic
Klasse für Rationalzahlen unter VB.NET
Autor: Online Redaktion
![](/img/1/7/6/1/9/7/6/rational_w320_h200.jpg)
![](/img/1/7/6/1/9/7/6/rational_w480_h300.jpg)
![](/img/1/7/6/1/9/7/6/rational_w640_h400.jpg)
dotnetpro
Eine praktische Lösung zur Speicherung von Rationalzahlen mit unbegrenzter Genauigkeit, wobei sowohl Zähler als auch Nenner in BigIntegers vorliegen.
Rationale Zahlen lassen sich durch Brüche darstellen. Sie verfügen also über einen Zähler und einen Nenner. Die Klasse von Xavier Junqué i de Fortuny ermöglicht die Speicherung dieser Zahlen, wobei sowohl Zähler als auch Nenner in BigIntegers vorliegen. Dies erlaubt die Handhabung von Ganzzahlen jeder Länge. Um Nicht-Ganzzahlen zu speichern, wird die Zahl entsprechend multipliziert, um sie in eine Ganzzahl umzuwandeln. Der Nenner wird dabei in gleichem Maße multipliziert wie der Zähler.
Zum Beispiel wird 1,2 durch 1,2 / 1 dargestellt. Der Zähler sollte somit 1,2 und der Nenner 1 enthalten. Da jedoch nur Ganzzahlen zulässig sind, wird 1,2 mit 10 multipliziert, ebenso der Nenner. Am Ende wird 12 als Zähler und 10 als Nenner gespeichert.
Ein spezielles Attribut, 'tipo', gibt an, ob die Rationalzahl keine Zahl (Double.NaN) oder unendlich (Double.Infinity) ist, was z.B. eine Division durch Null ermöglicht:
Code-Beispiel
1 2 |
Console.OutputEncoding = Text.Encoding.UTF8 |
…
Obwohl der Code möglicherweise nicht der schnellste ist, ist er praktisch und erfüllt seinen Zweck.
Wenn die Länge die maximal zulässige Grenze überschreitet, wird die Rationalzahl abgeschnitten. Dies geschieht durch Konvertierung in Byte-Arrays, Umdrehen der Bytes, Kürzen und erneutes Umdrehen, um den neuen Zähler und Nenner zu erhalten. Dabei wird auch das Attribut 'bReduced' gesetzt. Abschließend wird, falls der Zähler oder Nenner nicht bereits reduziert wurde, versucht, beide durch den größten gemeinsamen Teiler zu teilen.
Künstliche Intelligenz
GitHub Copilot vereinfacht Schreiben von Pull-Request-Beschreibungen
Präzise Pull-Request-Beschreibungen sind entscheidend für effektive Code-Reviews und die Zusammenarbeit im Team. GitHub Copilot kann jetzt auch dabei helfen.
>>
Visual Basic
Klasse für Rationalzahlen unter VB.NET
Eine praktische Lösung zur Speicherung von Rationalzahlen mit unbegrenzter Genauigkeit, wobei sowohl Zähler als auch Nenner in BigIntegers vorliegen.
>>
Programmiersprache
MoonBit, die Zukunft der WebAssembly-optimierten Programmierung
Die neue Open-Source-Programmiersprache ist speziell für WebAssembly optimiert und für Cloud- und Edge-Computing sowie Frontend-Anwendungen konzipiert.
>>
Neue Ära bei VSHN
Neudefinition von Führung in der Selbstorganisation ohne Managementteam
Beim Schweizer DevOps-Spezialisten VSHN wird ein spannendes neues Kapitel eingeläutet. Dort will man sich von der traditionellen Top-Management-Ebene verabschieden.
>>