как использовать оператор остатка для получения оставшегося КБ при преобразовании в МБ?

#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