Sgo*_*nks 20 java floating-point casting
为什么这样有效:
Object prova = 9.2;
System.out.println(prova);
Double prova2 = (Double) prova;
System.out.println(prova2);
Run Code Online (Sandbox Code Playgroud)
这不是吗?
Object prova = 9.2;
System.out.println(prova);
Float prova2 = (Float) prova;
System.out.println(prova2);
Run Code Online (Sandbox Code Playgroud)
我在我的java android应用程序中丢失了1小时这个东西的原因因此我不得不将它转换为double而不是浮点数中的double或者我有异常
Dil*_*nga 18
因为你在写作时依赖于自动装箱
Object prova = 9.2;
Run Code Online (Sandbox Code Playgroud)
如果你想要它是Float,试试吧
Object prova = 9.2f;
Run Code Online (Sandbox Code Playgroud)
请记住,java.lang.Float和java.lang.Double是兄弟类型; 常见的类型是java.lang.Number
如果要以任何格式表示数字,请使用API,例如Number.floatValue()
Isa*_*ett 15
9.2是双字面的.试试吧9.2f.
Object prova = 9.2f; // float literal is auto-boxed to a Float
System.out.println(prova);
Float prova2 = (Float) prova; // Float can be cast to Float, while Double cannot
System.out.println(prova2);
Run Code Online (Sandbox Code Playgroud)
错误消息(您可能应该包含在您的问题中)也很好地解释了它:
Exception in thread "main" java.lang.ClassCastException:
java.lang.Double cannot be cast to java.lang.Float
Run Code Online (Sandbox Code Playgroud)
aio*_*obe 14
因为prova是a Double,而Double不是子类型Float.
要么你可以从浮点文字开始:( 9.2f在这种情况下prova实际上是一个Float)或者,你可以像这样:
Float prova2 = ((Double) prova).floatValue();
Run Code Online (Sandbox Code Playgroud)