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?
