Anforderungen: Konvertieren Sie die Zeichenfolge (die Zeichenfolge hat nur eine Dezimalzahl), um die Berechnungen durchzuführen, und konvertieren Sie das Ergebnis in eine Zeichenfolge (behalten Sie eine Dezimalzahlung).
Laden Sie den Code direkt hoch:
float f1 = 0,1F; String a1 = "1,5"; System.out.println (float.Parsefloat (a1)+f1);
Antwort: 1.6
float f1 = 0,1F; String a1 = "1.6"; System.out.println (float.parsefloat (a1)+f1);
Antwort: 1.7
Um ehrlich zu sein, hatte ich am Anfang das Gefühl, dass der Code in Ordnung war. Ich habe viele Saiten von 0,1 ausprobiert, aber alle waren richtig.
Wenn jedoch a1 = "1.7", entsteht das Problem, das Ausgangsergebnis: 1.8000001
Äh? Gibt es ein Problem mit der Conversion -Methode? Es ist eine Routine, lange im Internet zu wandern.
Dies kann nur aus der Anzahl der zurückgehaltenen Ziffern und der Genauigkeit berücksichtigt werden. Also entdeckte ich Decimalformat
0 Eine Zahl
# Eine Nummer, nicht einschließlich 0
. Platzhalter für Dezimalabschlüsse
, Platzhalter für Gruppentrainer
; Abgrenzter Format.
- Standardnegatives Präfix.
% multipliziert mit 100 und als Prozentsatz angezeigt
float f = 0.1f; String max = "1.7"; DecimalFormat df = new DecimalFormat ("##########"); String s = df.format (float.parsefloat (max)+f); system.out.println (s);Ergebnisse: 1.8
OK, Problem gelöst!
Die obige Methode der Java -String, um zu schweben, um zu schweben, ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.