Methoden Decimalformat variabel einstellen

noo.bee

Mitglied
hallo

ich habe
Java:
DecimalFormat df = new DecimalFormat( ",##0.00");
, um ein standardformat zu gewährleisten. jedoch kann es passieren, dass bei manchen berechnungen z.b. 0,0000032 rauskommt.

kann man DecimalFormat so "einstellen", dass immer nur 2 kommastellen angezeigt werden wie oben, es sei denn es werden mehr benötigt ?
 
Die Methode setMaximumFractionDigits(int) ist für das setzen der maximalen Stellen HINTER dem Komma zuständig, währenddessen setMaximumIntegerDigits(int) für die maximalen Stellen VOR dem Komma zuständig ist.

Dasselbe gibt's auch "rückwarts":

Die Methode setMinimumFractionDigits(int) ist für die minimalen Nachkommastellen verantwortlich und die Methode setMinimumIntegerDigits(int) ist für die minimalen Vorkommastellen verantwortlich.
 
mhh, funktioniert zwar, aber löst mein prob nicht.

ich habe als ergebnis die zahlen:
0.277778 ...........sollte so aussehen 0.27
0.621373 ...........sollte so aussehen 0.62
0.000839208 ......sollte so aussehen 0.0008
0.00000000092 ...sollte so aussehen 0.0000000009
0.0539957 .........sollte so aussehen 0.05

also wenn 2 nachkommastellen reichen, wie im fall 1, fall 2 und fall 4 dann sollen auch nur 2 nachkommastellen gezeigt werden. in fall 3 und fall 4 reichen 2 NKS eben nicht.


achso, so sieht mein code aus
Java:
NumberFormat form = NumberFormat.getInstance();
form.setMaximumFractionDigits(10);
form.setMinimumFractionDigits(2);

form.format(summe1 * 0.277778) // summ1 ist in meinem fall jetzt einfach mal "1"
 
Moin,

mhh, funktioniert zwar, aber löst mein prob nicht.
ich habe als ergebnis die zahlen:
0.277778 ...........sollte so aussehen 0.27
0.621373 ...........sollte so aussehen 0.62
0.000839208 ......sollte so aussehen 0.0008
0.00000000092 ...sollte so aussehen 0.0000000009
0.0539957 .........sollte so aussehen 0.05

also wenn 2 nachkommastellen reichen, wie im fall 1, fall 2 und fall 4 dann sollen auch nur 2 nachkommastellen gezeigt werden. in fall 3 und fall 4 reichen 2 NKS eben nicht.

hmm, verstehe jetzt nicht wirklich, was Du willst ???:L
Also sollen es doch nicht nur zwei NK-Stellen sein ???:L

Wie willst Du denn in Deinem Programm unterscheiden, das die 2 NKs in Fall 3 und 4 nicht reichen, in den anderen Fällen aber schon ???:L 😱

Gruß
Klaus
 
Bitte beschreibe dein Problem genauer, da du es umständlich und, zumindest für mich, unverstänlich erklärt hast.
Zudem funktionieren die Methoden ja anscheinend...

Edit: Ich glaube, dass du einfach die Methoden falsch herum benutzt hast.
 
Hallo.

Dann erstelle dir doch eine Methode, die dir den passenden "Format" erzeugt?

@NintendoLink07

Java:
A : 0.000027578 sollte dann so aussehen: 0.000027
B : 0.00312 sollte dann so aussehen: 0.0031
Die (A)578 und (B)2 sollen abgeschnitten werden.
 
Zuletzt bearbeitet:
mhh, vllt hab ich es nicht ordentlich erklärt:

es sollen immer max 2 NK angezeigt werden. ABER bei dem ergebnis 0.0000123 reichen 2 NK nicht, da dann nur 0.00 da stehen würde. in dem fall sollte die zahl als 0.00001 dargestellt werden (also ausnahmsweise mehr NK).
weiß nicht, warum das nicht verstanden wird 😉


0.000839208 ......sollte so aussehen 0.0008
0.00000000092 ...sollte so aussehen 0.0000000009
weil hier mit 2 NK ja nur 0.00 und 0.00 stehen würde, machen hier 2 NK keinen sinn. sondern eben soviel, bis man nen ergebnis hat, was nicht 0.00 ist
 
Moin,

es sollen immer max 2 NK angezeigt werden. ABER bei dem ergebnis 0.0000123 reichen 2 NK nicht, da dann nur 0.00 da stehen würde. in dem fall sollte die zahl als 0.00001 dargestellt werden (also ausnahmsweise mehr NK).
weiß nicht, warum das nicht verstanden wird 😉

weil hier mit 2 NK ja nur 0.00 und 0.00 stehen würde, machen hier 2 NK keinen sinn. sondern eben soviel, bis man nen ergebnis hat, was nicht 0.00 ist
Deswegen geht es ja auch so ohne weiteres nicht, in dem Du GENERELL auf 2 NKs beschränkt !!

Hast Du denn diesen Beitrag gelesen ?
Hallo.
Dann erstelle dir doch eine Methode, die dir den passenden "Format" erzeugt?
@NintendoLink07
Java:
A : 0.000027578 sollte dann so aussehen: 0.000027
B : 0.00312 sollte dann so aussehen: 0.0031
Die (A)578 und (B)2 sollen abgeschnitten werden

Du wirst Dir das schon selbst basteln müssen, dass je nach Größe des Wertes die Anzahl der NKs eingestellt wird ....

Gruß
Klaus

Gruß
Klaus
 
Ist zwar unsauber, aber das einfachste das mir einfällt.

Pack die Zahl in einen String. Ermittel die Menge an Nullen nach dem Komma und zähle 2 hinzu. Dann weißt du wie viele Stellen nach dem Komma du anzeigen musst.

Natürlich musst du deinen Formatierungsstring dann dynamisch erzeugen oder hast eine Liste aller Möglichkeiten vorliegen...
 
ja, sowas schwebte mir am anfang schon vor 🙁 aber ich hab gehofft, dass es ne fertige methode o.ä. gibt...

naja wenigstens hats jetzt der großteil verstanden 😀 😀

Deswegen geht es ja auch so ohne weiteres nicht, in dem Du GENERELL auf 2 NKs beschränkt !!
ich will das aber 😉 2 NKS reichen in der regel ja überall aus... ausser eben bei 0.0000035 🙁
 
ja, werd wohl
Java:
setMinimumFractionDigits(int)
irgendwie nutzen... oder ich lass als eingabe nur
Java:
int
zu. neee, scherzchen. also ich bastel mal ;(
 

Neue Themen


Zurück
Oben