Math.abs, praktische Anwendung?

Status
Nicht offen für weitere Antworten.

pixel

Mitglied
Hallo zusammen,

im Buch gibt es folgendes Beispiel:

Code:
double d = 0.0; 
while ( d != 1.0 ) 
{ 
  d += 0.1; 
  System.out.println( d ); 
}
Damit soll gezeigt werden das es Probleme mit der Rundung gibt wenn man bei Fließkommazahlen einen absoluten Vergleich benötigt. Das ist soweit klar. Als eine möglichen Lösung gibt es:

Eine zweite Möglichkeit neben dem echten Kleiner/Größer-Vergleich ist, eine erlaubte Abweichung zu definieren. Mathematiker bezeichnen die Abweichung von zwei Werten mit dem griechischen Kleinbuchstaben Epsilon. Wenn wir einen Vergleich von zwei Fließkommazahlen anstreben und bei einem Gleichheitsvergleich die Abweichung mit betrachten wollen, so schreiben wir einfach:

Code:
if ( Math.abs(a - b) <= epsilon ) 
  ...

Epsilon ist die erlaubte Abweichung. Math.abs(x) berechnet von einer Zahl x den Absolutwert.

Was ist denn ein Absolutwert? Ich erkenne den Sinn der Funktion nicht so ganz. Wie kann ich die Funktion in das erste Code-Beispiel einbauen damit die Schleife nicht über die 1.0 hinaus läuft?

Viele Grüße
pixel
 
G

Gast

Gast
Absolutwert von 1.340000000007 = 1.340000000007
Absolutwert von -1.340000000007 = 1.340000000007

also einfach positiv machen

---------

Code:
double d = 0.0; 
while ( Math.abs(d - 1.0) > 0.00001 ) 
{ 
  d += 0.1; 
  System.out.println( d ); 
}

das ist aber immer noch ein blödes und gefährliches Vorgehen,
zum Glück nur ein Beispiel
 

SnooP

Top Contributor
blöd und gefährlich - aber dennoch das einzige was man machen kann, oder nicht? Man muss halt wissen, wie niedrig die Abweichung maximal sein darf oder kann...

Zu Absolutwert sagt man im Deutschen auch gerne Betrag einer Zahl.
 
S

Slater

Gast
ich meinte, es gibt genug gute Gründe diese Math.abs einzusetzen,
aber nicht in dieser Schleife und dort vergleicht man eh nicht mit != sondern <, > und dann verwendet man auch nicht double mit 0.1-Schritten,

also in jeder Hinsicht zu vermeiden,
daher verbietet sich eigentlich

> Wie kann ich die Funktion in das erste Code-Beispiel einbauen

;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P 2n Potenzieren ohne Math.pow oder pow Java Basics - Anfänger-Themen 8
J Math.Random Java Basics - Anfänger-Themen 9
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
sserio Math. Befehl wird rot markiert Java Basics - Anfänger-Themen 5
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
S Math.random funktioniert nicht Java Basics - Anfänger-Themen 5
alialhajhossein math.random Java Basics - Anfänger-Themen 3
L Math.exp also eigenen Algorithmus Java Basics - Anfänger-Themen 2
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
D Wahrscheinlichkeiten mit Math.random() Methode Java Basics - Anfänger-Themen 1
A Random Double mit Math.round() runden? Java Basics - Anfänger-Themen 1
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
B Potenzrechnung mit WindowBuilder ohne math.pow() Java Basics - Anfänger-Themen 1
I math.random Grenzwerte Java Basics - Anfänger-Themen 2
E Methoden Math.Random() kürzen ? Java Basics - Anfänger-Themen 2
B Potenzen ohne Math.pow Java Basics - Anfänger-Themen 4
N Datentypen Math.floor rundet nicht ab Java Basics - Anfänger-Themen 4
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
S Math.ceil für float Java Basics - Anfänger-Themen 1
J Methoden Math.random unklar Java Basics - Anfänger-Themen 4
Thorwine Erste Schritte Wuerfelspiel mit Math.random() Java Basics - Anfänger-Themen 10
S Math.random() Zufall ? Java Basics - Anfänger-Themen 2
H Ist Math.Random() eine Methode oder ein Methodenaufruf (Klausurfrage) Java Basics - Anfänger-Themen 4
M Warum ist dieses Feld der Klasse Math immutable? Java Basics - Anfänger-Themen 7
X Problem mit Math.random() Java Basics - Anfänger-Themen 2
S math Methoden in Java (quadrat) Java Basics - Anfänger-Themen 7
T Random vs. Math.random() Java Basics - Anfänger-Themen 2
C Erste Schritte Math.sin und Co. funktionieren nicht Java Basics - Anfänger-Themen 5
A Potenzen ohne math.pow Java Basics - Anfänger-Themen 1
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
L Klassen Point- und Math-Klasse Java Basics - Anfänger-Themen 3
J Musterlösung Verständnis Frage zu Math.abs() Java Basics - Anfänger-Themen 5
J java.lang.math asin() Java Basics - Anfänger-Themen 18
T Zufallserzeugung mit math.random und speichern in array Java Basics - Anfänger-Themen 29
L Math.floor und double Array Java Basics - Anfänger-Themen 13
J Woher kommt das Objekt "Math" bei Math.random(); ? Java Basics - Anfänger-Themen 3
P Typecasting für Ganzzahlige Zufallszahl (Math.random) Java Basics - Anfänger-Themen 2
B Math.acos() Java Basics - Anfänger-Themen 4
N Methoden Probleme mit Math.cos Java Basics - Anfänger-Themen 3
J Bedeutung von math.random() math.round() Java Basics - Anfänger-Themen 7
J Methoden Rekursive Potenz ohne Math.Pow() Java Basics - Anfänger-Themen 9
Luk10 3. Wurzel mit Math.pow(x, (1/3)) Java Basics - Anfänger-Themen 2
F Problem Math.random in for-Schleife Java Basics - Anfänger-Themen 8
R (Math.random()*49) zahl darf aber nur einmal gezogen werden Java Basics - Anfänger-Themen 11
J Datentypen Math.sqrt() immer NaN Java Basics - Anfänger-Themen 8
T Ungenaue Werte bei Math.atan Java Basics - Anfänger-Themen 10
C math.random() Java Basics - Anfänger-Themen 9
M Math.round Java Basics - Anfänger-Themen 32
M Math Class Java Basics - Anfänger-Themen 2
R math.random wertebereich 16-21 Java Basics - Anfänger-Themen 3
B Math.random und Strings Java Basics - Anfänger-Themen 13
B Math.abs Java Basics - Anfänger-Themen 4
Haave Postfix-Rechner: mehrere math. Operationen nacheinander ausführen Java Basics - Anfänger-Themen 8
Luk10 math.random() Java Basics - Anfänger-Themen 2
T Math.signum Java Basics - Anfänger-Themen 2
N Math + Variablen + Ausgabe Java Basics - Anfänger-Themen 2
B math. Operationen + Ausgabe Fehler :S Java Basics - Anfänger-Themen 5
J Math.random() - kurze frage. Java Basics - Anfänger-Themen 20
C math.pow funktionert nicht richtig oder garnicht Java Basics - Anfänger-Themen 4
G Quelltext von Methoden in der Klasse Math Java Basics - Anfänger-Themen 11
D runden ohne math! (zur not auch mit) Java Basics - Anfänger-Themen 9
G Klasse Math Java Basics - Anfänger-Themen 2
T Math.tan() Problem Java Basics - Anfänger-Themen 2
M Math.sin in Radiant in Java? Java Basics - Anfänger-Themen 5
C Math-Funktion Java Basics - Anfänger-Themen 10
S Math.tan Problem rechnet falsches Ergebniss aus. Java Basics - Anfänger-Themen 3
F Math.abs() Java Basics - Anfänger-Themen 3
J Math.random Java Basics - Anfänger-Themen 12
M Probleme mit Math.round() Java Basics - Anfänger-Themen 5
T Math.random() Zahlen von 25 - 50. Wie? Java Basics - Anfänger-Themen 7
H Brauche ganz dringend HILFEEE! Math random Java Basics - Anfänger-Themen 19
T Math.Random negativer Intervall Java Basics - Anfänger-Themen 2
M Eclipse: Fehler bei: import java.lang.math Java Basics - Anfänger-Themen 7
B Zahlenwiederholung bei Math.random verhindern Java Basics - Anfänger-Themen 4
D math und abs() Java Basics - Anfänger-Themen 14
J Zufallszahl ohne Math.random Java Basics - Anfänger-Themen 4
E Problem mit Methode Math.max Java Basics - Anfänger-Themen 2
A Probleme mit Math.random Java Basics - Anfänger-Themen 4
G Math.cos Java Basics - Anfänger-Themen 4
S Math-Befehl für Quadrieren! Java Basics - Anfänger-Themen 6
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
K Mail senden, nachdem Anwendung beendet wurde (gleich wie) Java Basics - Anfänger-Themen 4
P Best Practice Druck aus Java Anwendung in MacOs Java Basics - Anfänger-Themen 0
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
I Java Anwendung auf Android portieren Java Basics - Anfänger-Themen 1
I Java FX GUI Anwendung Java Basics - Anfänger-Themen 30
F Mehrere Server Sockets in einer Anwendung Java Basics - Anfänger-Themen 9
G MapStruct Anwendung vom selbst geschriebenen Formater Java Basics - Anfänger-Themen 4
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
S If Anwendung Java Basics - Anfänger-Themen 1
2 Verständnisproblem bei Anwendung von Lower Bounded Wildcards Java Basics - Anfänger-Themen 5
J Datentypen Anwendung von String contains Java Basics - Anfänger-Themen 4
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
R If anwendung funktioniert nicht Java Basics - Anfänger-Themen 3
W Verschiedene Bibliotheken in einer Anwendung? Java Basics - Anfänger-Themen 2
GENiALi Java Console Anwendung starten in Prozess Java Basics - Anfänger-Themen 3
A Testprogramm in java oder javascript für Windows Anwendung? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben