Ich habe versucht, Java-Integer-Division zu verwenden, und es nimmt angeblich das Wort. Es wird jedoch auf Null anstatt auf den Boden abgerundet.Java-Ganzzahl-Division gibt keinen Boden für negative Zahlen
public class Main {
public static void main(String[] args) {
System.out.println(-1/100); // should be -1, but is 0
System.out.println(Math.floor(-1d/100d)); // correct
}
}
Das Problem ist, dass ich nicht zu einem Doppel/Float konvertieren möchten, weil es effizient sein muss. Ich versuche das mit einer Methode zu lösen, floorDivide(long a, long b)
. Was ich habe, ist:
static long floorDivide(long a, long b) {
if (a < 0) {
// what do I put here?
}
return a/b;
}
Wie kann ich dies tun, ohne doppelte/schweben?
Es ist nichts ineffektiv, wenn du einen deiner "Ints" in "Double" verwandelst. – Zircon