J'ai récemment couru dans la curiosité suivante:Précision lors de la conversion de Double à Float lors de la concaténation de chaînes?
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
Pourquoi est-il pas possible d'avoir un flotteur agréable lors du calcul s ou s2? Pourquoi est-ce encore un double dans le cas s et s2? PS: Cette question n'a rien à voir avec la mise en forme des nombres, selon moi. Je veux vraiment comprendre pourquoi le (flotteur) d cast ne fonctionne pas !!
Le résultat d'un 'booléen? float: double' est un 'double' Il est lancé pour flotter mais il est en train d'être renvoyé en double. –