Java Float zu Lange Typecast
Kann mir jemand sagen was ich falsch mache hier. Ich bin in der Lage zu festgelegten y in lange, aber das gleiche funktioniert nicht bei x/y.
class Test {
long convert(int x, float y) {
//return (long) x/y; //cannot convert from float to long
return (long)y;
}
}
- dies ist ein Duplikat von stackoverflow.com/questions/1655120/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das einzige Problem hier ist, wie die Dinge sind in Klammern. Sie in Ordnung sein würde, wenn Sie schrieb
Wenn Sie schrieb
(long) x /y
, das behandelt wurde, als((long) x) /y
, das ist einfloat
nach den typregeln von Java.Hier
Umwandlung
x
alslong
aber der gesamte Ausdruck ist immer nochfloat
weily
und daher, wenn Sie versuchen , es zurückzugeben, es zeigt Fehler. Es ist die gleiche wiereturn ((long)x/y);
Besser :