Frage

Ich bin kein Mathematiker, aber ich durch unendlich assume Dividieren entweder schlechte Mathe, oder zumindest unpraktisch.

Ich gebe nur eine halbe Stunde mein Javascript debuggen, die perfekt in Firefox funktionieren aber mir einen Fehler im IE gab. Ich stellte schließlich war es, weil in bestimmten Szenarien, ich IE durch unendlich zu teilen frage.

Also, ich festgelegt, dass, aber ich bin neugierig, warum Firefox war OK damit. Zwar könnte dies als Programmierung eher eine mathematische Frage. ;)

War es hilfreich?

Lösung

Ich denke, dass ein Fehler in IE ist. Nach den Regeln der IEEE Mathematik, n / Inf = 0 (für n! = 0). Also, wenn IE über diese krächzt, es ist ein Problem im Internet Explorer. Auf der anderen Seite ist die Verwendung von Inf in gewöhnlichen mathematischen Operationen problematisch, und Sie wären besser dran, wenn Ihr Code nicht auf mich in erster Linie verlassen hat.

Warum ist es gefährlich? Nun, für Vorspeisen, nach IEEE 754:

1/0 = Inf
1/-0 = -Inf

, aber wir wissen, dass 0 = -0, daher

Inf = -Inf

, das ist offensichtlich unerwünscht. IEEE bedeutete nicht Inf eine gewöhnliche Zahl ohnehin zu machen. Inf und NaN existieren mit seinen inhärenten begrenzten Genauigkeit und Überlaufproblemen Gleitkomma-Arithmetik in Computern machen ähneln gewöhnliche Welt arithmetics, wo das einfachste Beispiel zu nehmen, wird die Menge der reellen Zahlen unter Zugabe geschlossen (das Hinzufügen von zwei reellen Zahlen immer zu eine andere reelle Zahl). Wenn Sie das mit endlicher Präzision Schwimmer tun, werden Sie Fälle, wo zwei Zahlen führt zu einem Überlauf hinzugefügt wird. Um zu vermeiden, dies als Fehler Zustand zu behandeln, eingeführt IEEE zwei zusätzliche Symbole, Inf und NaN, und eine Reihe von Regeln für ihr Verhalten. Nun ist das Ergebnis einer mathematischen Operation ist immer eine Zahl, oder Inf oder NaN, und ob das Ergebnis Sinn macht oder nicht, wird dem Benutzer überlassen.

Andere Tipps

durch Unendlichkeit Dividing ist in Ordnung -. Es ist null

Wenn Sie nicht gerade Dividieren Unendlichkeit von Unendlichkeit, die nicht definiert ist (in der Regel mindestens)

Aufteilen eine Anzahl von Unendlichkeit ist durchaus sinnvoll aus mathematischer Sicht. Es ist eine Reihe unendlich nahe Null, ohne tatsächlich Null zu erreichen.

Von einer Software-Sicht ist dies viel schwieriger, als unendlich kein diskret darstellbarer Wert ist. Meine Vermutung wäre, dass Ihr Unterschied im Verhalten auf Design-Entscheidungen basiert.

In Firefox, wählten sie wahrscheinlich einen Wert von null zurück, da für alle praktischen Zwecke, dieses Resultat für funktioniert, was Sie brauchen.

In IE, auf der anderen Seite scheint es, haben die Entwickler die bewusste Entscheidung getroffen, nicht zulassen, dass Sie eine Berechnung durchführen, dass sie wussten, dass sie nicht eine diskrete Antwort geben könnte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top