Möglich, die Genauigkeit von Gleitkommazahlen zu erhöhen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hallo.Gibt es eine Möglichkeit, die Gleitkommagenauigkeit anzugeben, die JSL bei der Durchführung von Berechnungen verwendet?Das heißt, die Anzahl der verwendeten signifikanten Ziffern.Zum Beispiel ist auf meinem Computer 1 minus 1e-15 gleich 0,999 ... (15 "9").Aber wenn ich 1 minus 1e-16 versuche, bekomme ich nur 1.
x = 1;
y = 1e-15;
z = x-y;
Show(z); //z = 0,999999999999999 (auch bekannt als 15 Dezimalstellen)
y = 1e-16;
z = x-y;
Show(z); // z = 1
Danke.
Betreff: Kann die Genauigkeit von Gleitkommazahlen erhöht werden?Hier ist das vollständige Skript, das ich ausgeführt habe, um Ihnen die von mir geposteten Ergebnisse anzuzeigen.
X = 1 ;
j = 1e-15 ;
z = X - j ;
Zeigen ( z ) ; //z = 0,999999999999999 (auch bekannt als 15 Dezimalstellen)
j = 1e-16 ;
z = X - j ;
Zeigen ( Format ( z , "Fester Dez" , 30 , 20 )) ;
Ich habe das Skript in 11.21.1 ausgeführt und die von Ihnen gemeldeten Ergebnisse erhalten.Der Unterschied ist also der Wechsel zu Version 12.2.
Betreff: Kann die Genauigkeit von Gleitkommazahlen erhöht werden?Hallo nochmal Jim.Auch erkannte eine andere wichtige Frage.In Ihrem Beitrag haben Sie angegeben, dass das Ergebnis für das Problem 1 minus 1e-16 lautet:
0,999999999999999 8 9000
(Beachten Sie die "8" an der 16. Dezimalstelle)
War das ein Tippfehler?
Betreff: Kann die Genauigkeit von Gleitkommazahlen erhöht werden?Jim,
Es tut mir leid, aber das scheint auf meinem System nicht zu funktionieren.Ich habe den Formatbefehl verwendet und die Antwort kam immer noch als "1".Offensichtlich funktioniert es auf Ihrem System, aber nicht auf meinem.In meiner Firma verwenden wir immer noch JMP 11.2.1, falls das wichtig ist.Mein Computer ist jedoch < 1 Jahr alt.
Frage: Die Dokumentation für Format ist etwas verwirrend.
s = Format(x, formatstring, , , < <)
Basierend darauf belegt die "20" in Ihrem Befehl das Währungscodefeld und die "30" das Dezimalfeld.Letzteres liegt mir natürlich am Herzen.Was ist der Zweck der "20"?
Betreff: Kann die Genauigkeit von Gleitkommazahlen erhöht werden?JMP verwendet die standardmäßige Gleitkommaunterstützung der Hardware.IEEE-Gleitkomma - Wikipedia, die freie Enzyklopädie
Wie Sie bemerkt haben, gibt es ungefähr 15 signifikante Ziffern.
JMP bietet keine Unterstützung für längere Darstellungen.(Big Int, Big Num-Bibliotheken sind derzeit nicht in JMP enthalten)
Als txnelson weist darauf hin, dass ein Standardformat zum Drucken einer Nummer manchmal nicht alle etwa 15 möglicherweise interessanten Ziffern anzeigt.
Betreff: Kann die Genauigkeit von Gleitkommazahlen erhöht werden?Was Sie sehen, ist, dass JMP versucht, die Daten in einem benutzerfreundlichen Standardformat anzuzeigen.Die Genauigkeit hinter dem Wert ändert sich nicht, wenn Sie ein Format angeben, in dem der Wert angezeigt werden soll.Wenn Sie also angeben, dass der Wert von "z" genauer angezeigt werden soll, wird dies der Fall sein.
Show(format(z, "Fixed Dec", 30, 20)); = "0,99999999999999989000";