Mehr Nachkommastellen mit double

kilopack15

Aktives Mitglied
Hallo!
Double ist ja schon sehr genau, gibt mit System.out.println(double soundso); aber nur einen Bruchteil seines Potenzials preis. Kann man das ändern? Sodass man z.B. 50 Nackommatsellen einer double ausgeben kann?
 

JStein52

Top Contributor
nein. Dazu brauchst du dann z.B. BigDecimal. Damit ist die Zahl der Nachkommastellen mehr oder weniger nur durch den verfügbaren Speicher begrenzt.
 

prise1993

Mitglied
Gerechnet wird mit mehr Stellen als ausgegeben werden. Die Genauigkeit ist bei double sowieso ein eigenes Thema wegen der Speicherungsart! So werden sehr große Zahlen ungenauer wobei kleiner Zahlen genauer abgebildet werden können. Es ist auch wichtig zu beachten das auch wenn mehr Stellen ausgegeben werden die Ausgabe nicht genauer wird!
Java:
        double c = 1.0/3.0;
        BigDecimal bc = new BigDecimal(c);
        System.out.println("bc = " + bc);
        System.out.println("c = " + c);
produziert die Ausgabe :
Code:
bc = 0.333333333333333314829616256247390992939472198486328125
c = 0.3333333333333333
 

prise1993

Mitglied
Wollte nur mal darauf hinweisen das die double nicht genauer wird nur, weil man mehr Stellen ausgibt.
War ja in der Frage explizit gefordert das mehr Stellen von einem double ausgegeben werden sollen.
Hab mir gedacht das Beispiel veranschaulicht das ganz schön.
 

JCODA

Top Contributor
Wollte nur mal darauf hinweisen das die double nicht genauer wird nur, weil man mehr Stellen ausgibt.
War ja in der Frage explizit gefordert das mehr Stellen von einem double ausgegeben werden sollen.
Hab mir gedacht das Beispiel veranschaulicht das ganz schön.
Naja, ein BigDecimal kann nicht genauer als ein double sein, wenn du ihm den "double-Wert" 1.0/3.0 gibst. Da wurde ja zuerst in double gerechnet.
Richtig geht es so:

Java:
import java.math.*;
class Main {
  public static void main(String[] args) {
    
     MathContext precision = new MathContext(100);
     BigDecimal bc = BigDecimal.ONE.divide(new BigDecimal("3"),precision);
     System.out.println("bc = " + bc);
   
     double c = 1.0/3.0;
     System.out.println("c = " + c);
  }
}
 

prise1993

Mitglied
Naja, ein BigDecimal kann nicht genauer als ein double sein, wenn du ihm den "double-Wert" 1.0/3.0 gibst. Da wurde ja zuerst in double gerechnet.
Das ist mir schon klar wollte eigentlich nur zum Ausdruck bringen das es nicht genauer wird, wenn man sich mehr Nachkommastellen anzeigen lässt beim Rechnen mit double.
Hab mich anscheinend nicht klar genug ausgedrückt sry.
 
X

Xyz1

Gast
Die Aussage, double wird genauer, je kleiner er/sie/es ist, ist sowieso mit Vorsicht zu genießen - stimmt sie doch im Allgemeinen nicht
 
X

Xyz1

Gast
Bei vielen führenden Nullen auf jedenfall und wenn die Zahl sehr groß wird, wird auch der absolute Fehler größer werden! Wobei mir auch klar ist das auch manche sehr große Zahlen genau dargestellt werden.
Nein, ich kann gerne ein paar Gegenbeispiele bringen.

Manche tun schon wieder so, als seien sie wissend.

Bearbeitung: Es gibt eigentlich nur eine führende Null - und das ist :D
 

InfectedBytes

Top Contributor
Ein double hat eine Genauigkeit von etwa 15-16 Dezimalstellen. Wo dabei nun das Komma steht ist egal, das kannste nach belieben um bis zu 308 Stellen nach links oder rechts schieben.

Und nun noch simple Beispiele:
1.000000000000000001 kannste schon nicht mehr mit double darstellen

Und hier mit absoluten Fehlern zu argumentieren ist etwas unsinnig, da klar ist das der Fehler bei großen Zahlen größer wird...
Bei solchen Dingen einfach mal die Norm ansehen: https://de.wikipedia.org/wiki/IEEE_754
 
X

Xyz1

Gast
double dbl1 = 1.0 / 6.0 * 100.0;
double dbl2 = 1.0 * 100.0 / 6.0;

Wir sind uns alle einig, dass 1.0 / 6.0 kleiner ist als 1.0 * 100.0 ... trotzdem ist dbl2 genauer als dbl1.

Es gibt noch mehr solcher Beispiele, zu finden auf StackOverflow! Nur, weil der double kleiner ist [0, 1] z. B., heißt das nicht IN JEDEM FALL, dass er auch genauer ist.

Sonst mag ich nicht so gerne diskutieren, weil, wie @InfectedBytes schon sagt, double ist genau spezifiziert. Auch das betreffende Fehler oder Abweichungen sind genau spezifiziert, musst du schon sagen, um welchen Fehler es sich handelt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
celta_vigo Programmieranfänger braucht Rat zu mehr Praxisnähe Java Basics - Anfänger-Themen 8
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
berserkerdq2 Warum ist das keine Referenzkopie mehr? Java Basics - Anfänger-Themen 26
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
C Was machen mit nicht mehr verwendeten Instanzen ? Java Basics - Anfänger-Themen 18
IamArctic Quaxli Tutorial, Rotorblätter bewegen sich nicht mehr Java Basics - Anfänger-Themen 4
pkm Regexproblem - Wie kann ich zwei oder mehr beliebige Zeichen matchen? Java Basics - Anfänger-Themen 7
M Werte ändern sich nicht mehr nach Reset Java Basics - Anfänger-Themen 14
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
H Vier Augen sehen mehr... Java Basics - Anfänger-Themen 6
C Exportierte JAR öffnet zweiten Frame nicht mehr Java Basics - Anfänger-Themen 7
P Ich komme nicht mehr weiter bei so einer einfachen Sache... Java Basics - Anfänger-Themen 18
J Java findet plötzlich die Dateien im Projekt nicht mehr. Java Basics - Anfänger-Themen 12
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
L Mehr Verschlüsselungen Java Basics - Anfänger-Themen 3
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
S Warum kann ich nicht mehr als eine Variable in einer for Schleife deklarieren ? Java Basics - Anfänger-Themen 1
L Compiler-Fehler AndroidStudio Projekt startet nicht mehr!!! Java Basics - Anfänger-Themen 2
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
U Klassen IntelliJ14.1.1 Ultimate startet eine Main-Klasse NICHT MEHR Java Basics - Anfänger-Themen 0
MrSnake Subimages mehr Speicherplatz als Original? Java Basics - Anfänger-Themen 2
T Methoden Nach der Schleife funktioniert nichts mehr Java Basics - Anfänger-Themen 7
A Variablen Variable soll ihren Wert nach Initialisierung nicht mehr ändern Java Basics - Anfänger-Themen 2
J Eine Art verkettete Liste aber mit teils mehr als einem Nachfolger Java Basics - Anfänger-Themen 8
D Erste Schritte Canvas verschwinden nicht mehr Java Basics - Anfänger-Themen 2
N Methode die mehr als ein Wert zurückgibt Java Basics - Anfänger-Themen 3
M .jar nicht mehr ausführbar. Java Basics - Anfänger-Themen 5
Z Fürge nur ein JTextField ein und danach wird nichts mehr angezeigt Java Basics - Anfänger-Themen 3
D MouseListener funktioniert nach Timerstart nicht mehr Java Basics - Anfänger-Themen 9
M Bekomm altes Uni-Projekt in java nicht mehr zum laufen Java Basics - Anfänger-Themen 7
H Empfohlene Projekt-Struktur und mehr ... Java Basics - Anfänger-Themen 5
S GUI kann im WindowBuilder nicht mehr (größer kleiner ziehen) Java Basics - Anfänger-Themen 2
O OOP Methoden bei erstellen einer Instanz und mehr Java Basics - Anfänger-Themen 4
J Java Writer funktioniert nicht mehr Java Basics - Anfänger-Themen 8
T Wenn Schaltjahr ist, soll Februar, einen Tag mehr haben, GUI mit combobox Java Basics - Anfänger-Themen 4
J Formen plötzlich nicht mehr aufrufbar! Java Basics - Anfänger-Themen 8
M Image Download klappt nicht mehr Java Basics - Anfänger-Themen 4
B Nichts geht mehr Java Basics - Anfänger-Themen 10
S MVC mit mehr als nur je einer Klasse? Java Basics - Anfänger-Themen 1
M Eclipse startet nicht mehr (eclipse.exe beendet sich selbst)? Java Basics - Anfänger-Themen 5
M Class nach Namensänderung nicht mehr vorhanden Java Basics - Anfänger-Themen 6
S Listener reagieren nicht mehr Java Basics - Anfänger-Themen 3
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
Z Java Compiler will nicht mehr Java Basics - Anfänger-Themen 3
K Compiler-Fehler Programme funktionieren nicht mehr Java Basics - Anfänger-Themen 5
H Privat ist nicht mehr private Java Basics - Anfänger-Themen 7
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13
C Variable funktioniert plötzlich nicht mehr? Java Basics - Anfänger-Themen 4
V Kann kein Java Projekt mehr mit Eclipse erstellen Java Basics - Anfänger-Themen 5
E Fehlermeldung und Fenster wird nicht mehr angezeigt Java Basics - Anfänger-Themen 12
P Classpath jdbc-Treiber kann nach export in jar-File nicht mehr geladen werden Java Basics - Anfänger-Themen 2
M Mutiple markers werden in Eclipse nicht mehr angezeigt Java Basics - Anfänger-Themen 2
T Compiler-Fehler Eclipse reagiert nicht mehr auf Änderungen im Code Java Basics - Anfänger-Themen 2
L Klassen Ich kann keine .jar Dateien mehr öffnen Java Basics - Anfänger-Themen 4
F Erste Schritte JCreator arbeitet nicht mehr als Eingabeaufforderung. Warum? Java Basics - Anfänger-Themen 5
C Versandmarkendruck bei der DP funktioniert nicht mehr Java Basics - Anfänger-Themen 3
P Laenge von mehr dimensionalen arrays Java Basics - Anfänger-Themen 2
F Warum werden nicht mehr Programme in Java geschrieben? Java Basics - Anfänger-Themen 27
K Action Listener reagiert nicht auf Button druck mehr??? Java Basics - Anfänger-Themen 4
T Programm läuft nicht mehr... Java Basics - Anfänger-Themen 3
H Beim Vergleich/Sortieren mehr als zwei Objekte berücksichtigen Java Basics - Anfänger-Themen 14
G Scrollbares Fenster bei mehr als 5 Objekten Java Basics - Anfänger-Themen 4
B Interface Nach "package"-Nennung keine Toolbar-Icons mehr Java Basics - Anfänger-Themen 5
I ComboBox mit Icons + Mehr...! Java Basics - Anfänger-Themen 6
F Ich kenn mich nicht mehr aus - 'java.lang.NoSuchMethodError: main' in Applet? Java Basics - Anfänger-Themen 2
F Spiel geht nicht mehr nach neuer Klasse Sound Java Basics - Anfänger-Themen 18
O Einlesen einer "config.ini" funktioniert plötzlich nicht mehr ! Java Basics - Anfänger-Themen 10
G Immer mehr Threads beim Selbstaufruf der main-Methode Java Basics - Anfänger-Themen 3
P Java Anwendung mit mehr RAM starten?? Java Basics - Anfänger-Themen 5
N Kann keine Java-Programme mehr schreiben Java Basics - Anfänger-Themen 10
H ObjectOutputStream - mehr als nur ein Objekt ausgeben Java Basics - Anfänger-Themen 2
I Datenbank - nach erster Verbindung keine Verbindung mehr Java Basics - Anfänger-Themen 3
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
C DecimalFormat-Patern funktioniert ab 11 Stellen nicht mehr Java Basics - Anfänger-Themen 3
V Warten bis die Länge eines Strings nicht mehr 0 ist Java Basics - Anfänger-Themen 13
I Weiß einfach nicht mehr weiter... Java Basics - Anfänger-Themen 3
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr Java Basics - Anfänger-Themen 2
Haave EAN-13-Prüfziffer: Vermeiden von Eingaben mit mehr/weniger als 12 Ziffern Java Basics - Anfänger-Themen 3
D brauch hillfe komm nicht mehr weiter... Java Basics - Anfänger-Themen 10
G methodenvorschläge bei Punktnotation kommen nicht mehr !! (Eclipse) Java Basics - Anfänger-Themen 5
B Objekt wird nicht mehr gezeichnet Java Basics - Anfänger-Themen 2
M MouseListener funktioniert in jar-file nicht mehr Java Basics - Anfänger-Themen 13
M TabbedPane: KeyListener funktioniert nicht mehr Java Basics - Anfänger-Themen 8
Q mehr Leistung durch Threads Java Basics - Anfänger-Themen 4
N mehr Dimensionalen Array beschreiben Java Basics - Anfänger-Themen 13
X Robot geht nicht mehr (Ubuntu 9.10) Java Basics - Anfänger-Themen 2
L Mehr als zwei Threads synchronisieren Java Basics - Anfänger-Themen 7
S Mein Computer kennt "javac" und "java" nicht mehr! Java Basics - Anfänger-Themen 6
C Bild wird nicht mehr gefunden Java Basics - Anfänger-Themen 2
T repaint wir nicht mehr geöffnet! Java Basics - Anfänger-Themen 38
V Programm Lädt nicht mehr . Java Basics - Anfänger-Themen 7
R Jar Datei läuft auf neuem Rechner nicht mehr Java Basics - Anfänger-Themen 15
R Mehr-Dimensionale ArrayList o.Ä. Java Basics - Anfänger-Themen 11
D Brauche mehr Flexibilität bei der Realisierung und weiss nicht wie ich das mache. Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben