我最近碰到下面的好奇心:当从串联到字符串连接时从双精度到浮点精度?
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。 –