#java
Вопрос:
public class MegaByteConverter {
public static void main(String[] args) {
printMegaBytesAndKiloBytes(2500);
}
public static void printMegaBytesAndKiloBytes(int kiloByte) {
if (kiloByte < 0) {
System.out.println("Invalid Value");
}
System.out.println(kiloByte " KB ="
kiloByte / 1024 " MB AND " (kiloByte / 1024) % kiloByte " KB");
}
}
Я не могу получить оставшиеся KBs. здесь что-то не так (kiloByte/1024) % kiloByte
.
Ответ №1:
Перед операцией не должно быть необходимости выполнять (kiloByte/1024)
%
какие-либо действия. Это и есть причина вашей проблемы.
Что у вас есть:
int kiloByte = 2500;
int megaByte = (kiloBytes / 1024); // 2500 / 1024 == 2
int remainder = megaByte % 1024; // 2 % 1024 == 2 which is not what you want
по сравнению с:
int kiloByte = 2500;
int megaByte = (kiloBytes / 1024); // == 2 (MB)
int remainder = kiloBytes % 1024; // == 452 (KB) which is your desired outcome