Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 2 Min.

Big Decimal in C#

Weil er keine Implementierung gefunden hat, die ihm gefiel, hat der amerikainische Softwareentwickler Paulo Zemek eine eigene BigDecimal-Inmplementierung in C# geschrieben und auf CodeProject veröffentlicht.
C# und .NET im Allgemeinen bieten derzeit keine BigDecimal-Klasse an. Lediglich eine BigInteger-Klasse wird angeboten. Der einzige wirkliche Unterschied zwischen BigInteger und BigDecimal ist die Tatsache, dass BigDecimal ein Dezimaltrennzeichen hat, um ganze Zahlen von den Bruchzahlen/Float-Zahlen zu trennen. Das wollte Entwickler Paulo Zemek hinzufügen: Eine Klasse, die eine beliebige Zahl als BigInteger speichert und die ein weiteres Feld aufweist, welches besagt wo genau das Trennzeichen sitzt. Freilich fehlen dann noch die Rechenmethoden, etwa das Multiplizieren oder das Dividieren von BigInteger-Zahlen.Die Lösung von Zemek nutzt für den Test seines Codes für die Division eine Beispielanwendung, die 100 Ziffern verwendet. Als Dezimaltrennzeichen wird der Punkt verwendet - unabhängig von den Region-Einstellungen auf dem Computer. Wer mit Zahlen wie 4328947293473294729347329847329432 für den Divisor und 23423432432432432423423 für den Teiler arbeiten will/muss, findet mit BigDecimal eine Lösung, während .NET hier durcheinander gerät.Wer sein eigenes Datenformat baut, kann auch so etwas einbauen: Zemek hat seine Klasse dazu gebracht, 1 zurückzugeben, wenn man 0 durch 0 dividiert. Dies soll mit der Vereinfachung in Formeln kompatibel sein, wo x/x immer eins ist. Wenn x 0 ist und man die Vereinfachung nicht vornimmt, wird in den meisten Fällen 0/0 zurückgegeben. In Zemeks Klasse wird 1 zurückgeben.In seinem Artikel auf CodeProject stellt Zemek seine Arbeit nicht nur vor und kommentiert sie, sondern er schreibt auch darüber, welche (teils unnütze) Wege er dabei verfolgt hat. Ebenso ist dort der Source-Code seiner Arbeit zu finden und auch die Idee eines Zahlenformats BigRational ist bereits vorhanden. Lesen Sie selbst.
Miscellaneous

Neueste Beiträge

Interaktive Planung und integrierte AI-Code-Reviews mit Cursor - Die KI-IDE Cursor in der Praxis, Teil 1
Cursor kombiniert den Plan-Modus mit integrierten AI-Code-Reviews und verbindet so Planung mit Umsetzung und Qualitätssicherung in einem interaktiven Entwicklungsworkflow.
8 Minuten
3. Jun 2026
Ein Mantra für sauberes Softwaredesign
Drei einfache, aber fundamentale Regeln bilden den Einstieg in die Composite-Components-Architektur.
5 Minuten
27. Mai 2026
Security ist essenziell - Secure Boot: Sicherheit von Anfang an
Die beste Verschlüsselung wird ausgehebelt, wenn das Betriebssystem schon beim Bootvorgang kompromittiert wird.
8 Minuten
25. Mai 2026

Das könnte Dich auch interessieren

00:00
C# 14, Blazor und die Desktop-Frage - Was sind die Killer Features der aktuellen Versionen?
C# 14 bringt echte Verbesserungen für den Entwickleralltag – aber nicht jedes neue Feature ist ein Game Changer. Microsoft MVP Thomas-Claudius Huber sortiert, was in der Praxis zählt, erklärt, wann Blazor React schlägt, und warum WPF noch lange nicht zum alten Eisen gehört.
19. Mai 2026
Vom Python-Modell zur .NET-Anwendung - .NET, Python und KI, Teil 4
Am Szenario einer Sentiment-Analyse verdeutlicht ein durchgängiges Anwendungsbeispiel, wie aus einem isolierten Data-Science-Ergebnis eine konkret genutzte Funktion innerhalb einer .NET-Business-Anwendung entsteht.
7 Minuten
Elektronische Schaltkreise im Browser simulieren - Simulation
Statt mit Steckfeld oder Lötkolben kann man auf dieser Website Schaltungen per Drag and Drop zusammenstellen und deren Verhalten testen.
2 Minuten
26. Jul 2018
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige