Hallo,
beliebige Genauigkeit ist unter .NET sowieso schwierig, weil es keinen System-eigenen Typen dafür gibt. Das maximale wäre
Decimal oder das besser unterstützte Double mit 15-16 Stellen exaktheit.
Zunächst stellt sich also die Frage, wie du die Werte überhaupt abspeichern willst. Am einfachsten wäre vielleicht ein Bruch aus 2 BigInteger-Werten. Hierbei hättest du aber das Problem des Kürzens. Eine Thirdparty Library für solch einen "BigRational"-Typ
ist mir nicht bekannt.
Im
Deutschsprachigen und
Englischsprachigen Wikipedia Artikel zu den mathematischen Funktionen siehst du einige Beispiele, wie man den Arkus Sinus berechnen kann. Die CPU ermittelt viele Werte mathematischer Funktionen mit Hilfe des
CORDIC-Algorithmus. Soweit ich weiß, kann das auch für asin verwendet werden.
Ich habe selbst mal etwas in der Art geschrieben. Für meine Zwecke erwies es am effizientesten eine Reihenentwicklung zu nutzen. Das solltest du ggf. austesten.
Tom Lambert - .NET (C#) MVP
Wozu
Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode |
C# ↔ VB.NET Konverter |
Account bestätigen (Verify Your Account)
Ich: Webseite |
Code Beispiele | Facebook |
Twitter | Snippets