Ich lief vor kurzem in der folgenden Neugier:Präzision beim Gießen von Double zu Float beim Verketten von String?
double d=0.8608278036117554;
String precision="float";
float f=(float)d;
String s="a " + (precision.equals("float") ? (float)d: d) + " Bonjour";
String s2="a " + String.valueOf(precision.equals("float") ? (float)d: d) + " Bonjour";
String s3="a " + (precision.equals("float") ? String.valueOf((float)d): String.valueOf(d)) + " Bonjour";
println(d);
println(f);
println(s);
println(s2);
println(s3);
//0.8608278036117554
//0.8608278
//a 0.8608278036117554 Bonjour
//a 0.8608278036117554 Bonjour
//a 0.8608278 Bonjour
Warum ist es nicht möglich, einen schönen Schwimmer zu haben, wenn s oder s2 Berechnung? Warum ist es immer noch ein Doppel in Fall s und s2?
PS: Diese Frage hat meiner Meinung nach nichts mit Zahlenformatierung zu tun. Ich möchte wirklich verstehen, warum die (float) d Besetzung nicht funktioniert !!
Das Ergebnis eines 'boolean? float: double' ist ein 'double' Es wird geworfen, um zu floaten, aber das wird zu einem Double zurückgeworfen. –