Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich möchte gerne eine txt datei zeilenweise einlsen was eigentlich kein problem ist. jedoch würde ich gerne wissen wie ich die Zeilen zwischen zwei andere zeilen einlesen kann.
also sobald "xSpace" in einer zeile auftaucht dann würde ich gerne die zeilen einlesen bis "ySpace" in einer zeile auftaucht dann würde ich gern stoppen.
Es ist zu beachten dass die dazwischen liegenden zeilen beinhalten keine xSpace, also mit zeile.contains("xSpace") funktioniert nicht.
Wenn nicht, dann iterierst du mit einer Schleife über die Datei und ließt immer eine Zeile ein. Dann guckst du bei jeder Zeile mit .startsWith() nach, ob dein String vorhanden ist. Wenn ja, läuft die Schleife aus und eine Neue startet, welche nachprüft, ob did Zeile mit dem anderen String beginnt und sämtliche Zeilen, bei denen das nicht der Fall ist mit .append() zu einem StringBuilder/StringBuffer hinzufügt.
ich lese die txt datei zeilen weise als String nun sind die werte die ich speichern möchte float.
ich hab diese werte als float gespeichert und möchte die nun durch 1000 dividieren.
So dass ich z.B. für -0.1 diesen wert bekomme -0.000100,
Ich bekomme aber so einen wert raus :-1.00000005E-4
Ok ich verstehe, aber mit printf wird das ja in Konsole angezetgt, wie kann ich denn diesen wert denn speichern. So wie in meinem Code will ihn dann in yValue speichern.
Den Wert zu runden ist kein Problem. Warte kurz. Ich hab da irgendwo was rumliegen.
EDIT: Hier ist es:
Java:
double runde(double paramDouble, int stellen){
if (paramDouble > Integer.MAX_VALUE|| paramDouble < Integer.MIN_VALUE) throw new IllegalArgumentException("Zahl außerhalb des Bereichs");
paramDouble*= (stellen * 10)
return ((double)((int)((paramDouble < 0 ? paramDouble - .5 : paramDouble + .5)))) / (stellen * 10);
}
Das ist zwar eigentlich C++ und ungetestet umgebaut aber eigentlich müsste es funktionieren.
paramDouble wird zuerst mit den Stellen multipliziert. Dadurch wird das Runden mittels Casten auf int ermöglicht. Ist paramDouble negativ, so werden 0,5 abgezogen, das Ganze zu int gecastet, wieder zu double gecastet und wieder auf die ursprüngliche Größenordnung gebracht. Ist paramDouble positiv, so werden 0,5 hinzuaddiert und der Rest bleibt gleich.
Hi,
danke erstmal,
aber das funktioniert nicht so ganz.
Also ich bekomme die werte in mm und würde die dann in Meter umrechnen. so will ich für 0.1 mm dann 0.0001 m bekomme. mit deiner Methode bekomme ich diesen wert nicht.
In deine methode ist dann 0.1 paramDouble und stelle ist dann 1000 oder???
dann sind die werte genau so wie ich die haben will aber ich weiss nicht wie ich diese in YSpaceValues speichern kann.
kann da mir einer weiter helfen??
dann sind die werte genau so wie ich die haben will aber ich weiss nicht wie ich diese in YSpaceValues speichern kann.
kann da mir einer weiter helfen??
Also ich lese zeileweise eine txt datei ein. diese beinhaltet werte wie -0.1, -0.2,...
ich wandle die erstmal vom string zu float
Java:
double yValue = Float.parseFloat(zeile);
diese werte sind ja in milimeter und ich möchte gerne die in meter umrechnen und das ergebnis in einem ArrayList Speichern.
so bekomme ich in meinem array werte wie [0.0001,0.0002,...]
aber wenn ich das so mache wie oben bekomme ich:
[-1.0E-4, -2.0E-4,...]
Wenn du es so machst wie oben bekommst du eine TEXTUELLE FORMATIERTE Darstellung deines Wertes,
ansonsten verstehe ich jetzt das Konkrete problem nicht so ganz ^^
Vermutlich bekommt er irgendwelche seltsamen Zahlen als Ergebnis, wie 0,0010000374649389 und will diese aber auf 3 Nachkommastellen gerundet haben. Also 0,001.
Eigentlich müsste meine Methode diese Aufgabe erfüllen. Funktionieren würde aber auch: