Ich versuche, einfache Subtraktion Arithmetik auf zwei sehr große Zahlen zu tun.Wissenschaftliche Notation Umwandlung - Schema
(- 1.8305286640724363e+023 (floor 1.8305286640724363e+023))
Wenn ich dies tue, bekomme ich ein Ergebnis von 0,0. Ich erwarte eine Ausgabe von:
(- 1.8305286640724363e+023 (floor 1.8305286640724363e+023)) => .2439521
Die erweiterte wissenschaftliche Notation würde mir diese Antwort geben.
183052866407243622723319,24395251 - 183052866407243622723319,00 = .2439521
Ich mag diese Zahlen darzustellen, wie sie sind, mit den Dezimalzahlen vorhanden, im Gegensatz zu wissenschaftlicher Notation, also kann ich das gewünschte Ergebnis erzielen. Gibt es eine Möglichkeit, dies innerhalb von Scheme zu tun? Jede mögliche Hilfe, Anleitung oder Referenz würde sehr geschätzt werden :)
Ich benutze DrRacket für Windows 64bit und R5RS Sprache.
EDIT
Ich dachte, ich wie möglich in Bezug auf ein Beispiel thearithmetic als spezifisch sein würde ich durchführen werde.
Arithmetik:
(* 271979577247970257395 0.6180339887) => 1.6809262297150285e+020
Wenn in einem Rechner das gleiche Multiplikation zu tun, ist das Ergebnis yeilds => 168092622971502827156,7975214365
Beim Versuch, genau zu verwenden oder ungenauen ich diese:
(exact (* 271979577247970257395 0.6180339887)) => exact: undefined;
(inexact (* 271979577247970257395 0.6180339887)) => inexact: undefined;
Ich nehme an, R5RS unterstützt nicht genau/ungenau? Ich sah es auf und Beispiele zeigen die Verwendung inexact-> genaue Vorgehensweise also tat ich und bekam dies:
(inexact->exact (* 271979577247970257395 0.6180339887)) => 168092622971502854144
Und nur für die Spezifität, habe ich das Gegenteil:
(exact->inexact (* 271979577247970257395 0.6180339887)) => 1.6809262297150285e+020
So dann habe ich versucht, mit Big Float als jemand erwähnt:
(bf-precision 128)
(bf (* 271979577247970257395 0.6180339887)) => (bf 168092622971502854144)
Geben Sie mir die gleiche Ausgabe wie genau. Alles, was ich will, ist nur die Nummer zu bekommen, die ich von einem Taschenrechner bekommen würde und es scheint eine sehr schwierige Aufgabe zu sein! Es tut mir leid, dass ich mich dumm anhören mag, weil ich das nicht verstanden habe. Behalte im Hinterkopf, dass ich in SCHEME ein extremer Amateur bin. Danke nochmal für deine Hilfe! :)
Hallo, vielen Dank für Ihre schnelle Antwort! Der Bigfloat gibt mir nicht die Dezimalstellen, die ich möchte. Ich sehe, dass Sie ihm die Dezimalstellen mit Nachdruck mitteilen und dann die Subtraktion durchführen. Ich mache Arithmetik, um die Fließkommazahl zu erhalten. Ich werde die Frage aktualisieren, damit ich es dir zeigen kann. – Sixers17
Hallo. Ich habe ein Update hinzugefügt, das zeigt, wie man das Ergebnis wieder in eine Standard-Fließkommazahl umwandelt. – soegaard
Ich habe eine Alternative zur Verwendung von bigfloats hinzugefügt. – soegaard