ich habe diesen Code:Number nicht korrekt Nummer geben
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
import java.util.Scanner;
class EntryPoint {
static Locale czech = null;
static Locale getCzechLocale(){
if (czech == null){
czech = new Locale("cs","CZ");
}
return czech;
}
public static void main(String[] args) {
Scanner sn = new Scanner(System.in);
NumberFormat nf = NumberFormat.getInstance(getCzechLocale());
System.out.println(nf.format(12000.5));
NumberFormat nf2 = NumberFormat.getCurrencyInstance(getCzechLocale());
try {
String input = sn.nextLine();
System.out.println(input);
Number n = nf.parse(input);
System.out.println(n.floatValue());
}catch(ParseException javaTextParseException){
System.err.println("Unable to parse input String");
}
}
}
Ich mag diese Sache zu archivieren: wenn ich Nummer eingeben „12 000,5“ (als Programm angezeigt wird) Programm Parst und dieser String und wird Anzeige Nummer "12000.5". Was habe ich falsch? Nun, wenn ich „12 000,5“ ohne "Zeichen Programmanzeige float Zahl‚12,0‘, nicht‚12.000,5‘
Gelöst NumberFormat.Parse (String) endet am ersten Raum char eingeben, also wenn ich machen trim() und Ersetzen (““, ‚‘), dann führt OK ist
Warum denken Sie, das ist falsch? – Henry
Ich bin auf System mit "en_US" Gebietsschema, so muss ich Text eingeben in "cs_CZ" -Format und in "en_US" –
@Henry, denn wenn ich "12 000,5" eingeben, habe ich Ergebnis "12.0" –