Avatar billede 123maka Nybegynder
11. juni 2005 - 06:18 Der er 1 løsning

Fejlagtig udregning

Hej, jeg er lidt ny i java-sproget endnu, men for at teste java lidt har jeg oversat et af mine gamle c++ programmer til java og lavet det OO.

Svaret jeg får er helt hen i vejret, med mit c++ program får jeg svaret som 3 minutter og 20 sekunder. Men med javaen er svaret "Det tager 1 timer 27 minutter og 2 sekunder".
Min kode er som følger:

download_speed.java
class download_speed {
        private double usr_kbit;        // Users connection to the net in KB/s
        private double chars_pr_secs;  // How many chars that can be transferred pr. second
        private double file_size;      // The size of the file the user wants to download

        private double hours;          // How many hours it takes
        private double minutes;        // How many minutes to use
        private double seconds;        // How many seconds, is used temporarely to calculate the other values

        public void set_vars(double speed, double size) {
                file_size = size;      // Mb
                usr_kbit  = speed;      // Kb
        }

        public double[] calculate() {

                chars_pr_secs = usr_kbit * 1024.0;      // Calculate how many characters the user can download in seconds
                file_size = file_size * 1024.0 * 1024.0; // Calculate how much bytes the download is

                hours = Math.floor(seconds / 3600.0);
                seconds = file_size / chars_pr_secs;
                hours = Math.floor(seconds / 3600.0);
                seconds = seconds - hours * 3600.0;
                minutes = Math.floor(seconds / 60.0);
                seconds = seconds - minutes * 60.0;

                double time[] = {hours,minutes,seconds};

                return time;

        }
}

calc.java
class calc {
        public static void main(String args[]) {
                download_speed user = new download_speed();
                user.set_vars(10, 51);

                double time[] = user.calculate();
                System.out.println("Det tager " + (int)time[0] + " timer " + (int)time[1] + " minutter og " + (int)time[2] + " sekunder");
        }
}


Hvorfor er der så stor forskel?
Avatar billede 123maka Nybegynder
11. juni 2005 - 06:19 #1
*suk* efter at have fejlsøgt en halv time finder jeg ud af med det samme efter at have postet her at jeg har byttet om på de to variabler i calculate();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester