Signifikante Stellen einschränken

F

faladu

Gast
Guten Tag

Mein Problem ist folgendes. Ich soll ein Tool das auf einer anderen Plattform bereits exisitert in Java nachbilden. Der Java double gibt mir aber bis zu 17 Stellen aus, das vorhandene Tool hat nur 15 Stellen und es ist ausdrücklich verlangt worden, dass die selben Werte rauskommen.

Das andere Tool schneidet die Zahlen einfach nach den 15 gültigen Ziffern ab (Wenns nur Nachkommastellen wären wäre mir die Lösung bekannt aber bei gültigen Ziffern nicht).

Wie kann ich Java dazu bringen auch nur 15 gültige/signifikante Ziffern beim double zu verwenden, bzw. eine andere Variablenart finden/erzeugen die nur 15 signifikante Ziffern hat

Viele Grüße
Max
 
S

SlaterB

Gast
double kannst du nicht ändern, eine allzu praktikable Alternative gibt es nicht,
wenn es dir nur um die Ausgabe auf dem Bildschirm geht, dann kannst du den Weg von double nach String kontrollieren,
DecimalFormat
 
F

faladu

Gast
Leider muss ich mit den Werten weiterrechnen. Da die Zahlen mit 100.000 multipliziert werden und dann relativ oft aufsummiert werden, spielen diese Ziffern am Ende auch eine gewisse Rolle :(
 
F

faladu

Gast
Um das zu machen bräuchte ich aber die Information wieviele Stellen vor dem double sind. Und ich wollte ungern für jeden Wert eine Abfrage machen ob er > 10^1 > 10^2 >10^3 etc. ist um dann die Abfrage zu machen. Oder hast du mir eine Funktion die die Anzahl der Stellen vor dem Komma angibt und ggf. schneller arbeitet.
 
S

SlaterB

Gast
verwende BigDecimal setScale()

edit: ok, passt auch nicht zu Stellen vor dem Komma.., dann muss es wirklich was kompliziertes werden,
aber sich auf diese Weise bei wichtigen Berechnungen auf den Datentyp festzulegen..
 
F

faladu

Gast
Hatte gehofft es gäb einen einfachen Befehl dafür und dann funktioniert das so :x
Es führt halt atm zu unangenehmen Abweichungen und in dem anderem Programm hat ein double nur 15 gültige Stellen. Das dort zu ändern dürfte wohl auch nicht gehen und Abweichungen zwischen den Programmen sind bisher leider nicht erwünscht. Also muss ich mir wohl doch eine Funktion schreiben die die Stellen vor dem Komma ermittelt und dann entsprechend rundet.

Was wäre für die Stellen vor dem Komma für den Pc denn schneller.
Eine Verschachtelung von ifs mit >10^15 sonst falls >10^14 .... oder umwandeln in einen String und die Anzahl der Zeichen vor dem Punkt nehmen?

Danke schonmal für die Hilfe.
 
S

SlaterB

Gast
bei solchen Dingen rate ich dazu, nicht auf die Performance zu achten,
du musst wahrscheinlich eh auf krumme Werte runden wenn es um Bits geht, nicht auf 10er-Stellen?
also ein double hat jedenfalls auch nicht exakt 17 Stellen genau, sondern eben 52 Bits für die Mantisse
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 5.2 Fließkommaarithmetik in Java

wie es in dem anderen Programm ist wäre dann noch genau zu testen bevor da was zu machen ist..,
vielleicht ist es eine günstige Richtung, den double in eine Binärdarstellung zu überführen und da etwas zu ändern,

schaue dir Doube.toHexString() an, parseDouble() gibts dazu

> Das andere Tool schneidet die Zahlen einfach nach den 15 gültigen Ziffern ab
nun gut, mag so sein
 
F

faladu

Gast
Dass es in Java nicht immer 17 Stellen sondern manchmal auch nur 16 sind ist mir aufgefallen, dass es an den Bit liegt war mir nicht klar. In dem anderem Tool sind es immer 15, das habe ich mir schon angeschaut bzw. nochmal nachgefragt.

Ich danke für eure Hilfe und mach mich an die Arbeit.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
M Wie lassen sich Konstanten in Bedingung stellen? Java Basics - Anfänger-Themen 1
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
J PdfTable Spalte höher stellen Java Basics - Anfänger-Themen 2
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I Scanner auf 10 Stellen begrenzt? Java Basics - Anfänger-Themen 5
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
F Erste Schritte Binär zahle auf 8 stellen aufüllen Java Basics - Anfänger-Themen 2
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
E jProgressBar auf 0 stellen Java Basics - Anfänger-Themen 1
B Methoden JaveEditor - Wie kann ich Methodenbeschreibung zur Verfügung stellen Java Basics - Anfänger-Themen 1
M 2 Stellen in einem Array vergleichen und bei übereinstimmen eine davon ersetzen Java Basics - Anfänger-Themen 1
S programm speichern und fertig stellen Java Basics - Anfänger-Themen 2
Z OOP Objekte einer Klasse weiteren Klassen zur Verfügung stellen Java Basics - Anfänger-Themen 17
C Int mit vorangestellten Nullen und maximal 4 stellen erzeugen. Java Basics - Anfänger-Themen 4
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
A Rekursion, Anzahl von Stellen ausgeben Java Basics - Anfänger-Themen 7
O Java Interfaces für andere Programmiersprachen zur Verfuegung stellen? Java Basics - Anfänger-Themen 2
I Texte an bestimmten Stellen ausgeben. Java Basics - Anfänger-Themen 3
M Programm fertig stellen, Jar mit Bildern Java Basics - Anfänger-Themen 14
T Sting -> Array, leere Stellen löschen Java Basics - Anfänger-Themen 6
B Datentypen Wurzel auf n stellen nach dem Komma selber zeihen -> double zu schlecht Java Basics - Anfänger-Themen 19
R Bestimmte Stellen eines BigInteger Java Basics - Anfänger-Themen 7
V Bestimmte Stellen aus .txt Datei auslesen Java Basics - Anfänger-Themen 11
D JPG Qualität mit JPEGImageEncoder auf 100% stellen Java Basics - Anfänger-Themen 12
H Zahl auf 2 nachkomma stellen runden Java Basics - Anfänger-Themen 13
F Preis auf eine Nachkomma stellen aufrunden Java Basics - Anfänger-Themen 8
N Datentypen Double nach 2 stellen kürzen Java Basics - Anfänger-Themen 4
T System.out.printf Zeilenumbruch nach x Stellen Java Basics - Anfänger-Themen 4
S compiler auf 6.0 stellen Java Basics - Anfänger-Themen 6
Z Anzahl der Stellen nach dem Komma verändern. Java Basics - Anfänger-Themen 7
M String an bestimmten Stellen zerlegen Java Basics - Anfänger-Themen 12
C DecimalFormat-Patern funktioniert ab 11 Stellen nicht mehr Java Basics - Anfänger-Themen 3
D Datentypen Double 2 stellen hinter dem Komma ausgeben OHNE decimalformat Java Basics - Anfänger-Themen 2
R Stellen einer Variable auslesen Java Basics - Anfänger-Themen 4
-horn- Runden auf x-Stellen wirklich nur so umständlich? Java Basics - Anfänger-Themen 9
F Vierstellige Zahl eingeben und an 4 stellen eines Arrays ausgeben Java Basics - Anfänger-Themen 3
N Doulbe - 2 Stellen nach dem Komma Java Basics - Anfänger-Themen 9
B Kommazahl mit 2 Nachkomma-Stellen im jFormattedTextField Java Basics - Anfänger-Themen 6
S Zufallszahl mit 6 Stellen erzeugen Java Basics - Anfänger-Themen 4
O Applet ins Netz stellen Java Basics - Anfänger-Themen 6
G DoubleWert immer mit 2 stellen nach dem Komma? Java Basics - Anfänger-Themen 13
Y Programm im Hintergrund stellen Java Basics - Anfänger-Themen 5
D String mit 2 Stellen nach dem Komma (Dezimalzahl) Java Basics - Anfänger-Themen 9
B Stellen nach dem Komma Java Basics - Anfänger-Themen 2
P Integer Anzahl der Stellen Java Basics - Anfänger-Themen 4
S Wie runden man noch mal auf bestimmte stellen? Java Basics - Anfänger-Themen 8
F bei einem Float nur x Stellen nach dem Komma anzeigen ? Java Basics - Anfänger-Themen 7
M Eclipse: Einfärbung ändern für angeklickte Stellen im Source Java Basics - Anfänger-Themen 5
M Float-Zahl auf x Stellen beschränken Java Basics - Anfänger-Themen 6
P Dezimalstellen limitieren (runden auf 2 Stellen) Java Basics - Anfänger-Themen 3
S bei Integer mehr stellen als nötig ausgeben - 0006 Java Basics - Anfänger-Themen 5
C Länge/Anzahl der Stellen eines Integers Java Basics - Anfänger-Themen 8
J Textauslesen, an bestimmten stellen? Java Basics - Anfänger-Themen 20
D Double auf 2 stellen nach dem Komma reduzieren.. Java Basics - Anfänger-Themen 7
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
J Eingabe Einschränken Java Basics - Anfänger-Themen 1
S createRandomColor einschränken Java Basics - Anfänger-Themen 5
S Zugriff auf Klasse/Methoden außerhalb eines Projektordners einschränken Java Basics - Anfänger-Themen 5
R Benutzerzugriff nur auf eine Website einschränken Java Basics - Anfänger-Themen 9
S Parameter einschränken Java Basics - Anfänger-Themen 19
T genericsdeklaration - Typen einschränken Java Basics - Anfänger-Themen 17
G Array einschränken Java Basics - Anfänger-Themen 10
T Wertebereich auf 0 bis 1 einschränken Java Basics - Anfänger-Themen 10
O Iterator - Durchlauf "einschränken" bzw. steuern&q Java Basics - Anfänger-Themen 2
G String auf A bis Z und a bis z einschränken Java Basics - Anfänger-Themen 6
R resizen eines NULL-Layouts einschränken Java Basics - Anfänger-Themen 4
G Itemlistener einschränken Java Basics - Anfänger-Themen 2
M Quellcode einschränken?! Java Basics - Anfänger-Themen 6
G Eingabe einschränken Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben