我最近碰到下面的好奇心:當從串聯到字符串連接時從雙精度到浮點精度?
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
爲什麼不能有一個很好的浮動計算時小號或S2? 爲什麼在s和s2的情況下仍然是雙倍的?
PS:在我看來,這個問題與數字格式無關。我真的很想理解爲什麼(float)d演員不工作!
「boolean?」的結果? float:double'是一個'double'這是鑄造浮起來的,但是它正在被轉換成一個double。 –