Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialDerek Derek
8,744 Pointsusing hour and minutes
I tried specifying the total time by converting it into hours and minutes. When I compile and run and enter, say 20 minutes, as the input, I get a weird conversion like 0.333333 hours and 20 minutes.. This all started when I switched to using doubles from using ints. Why is this happening and how can I fix it?
Here is the snapshot of my code:
Thank you!
2 Answers
Steven Parker
231,210 PointsWhen you switched from integer to double variables, the compiler also began using double math for you. Your program is intended to separate the hours from the minutes, and back when the values were integers, dividing total minutes by 60 gave you only the hours. But now, the double division gives you a number which includes the minutes expressed as fractions of an hour.
So now, to extract only the hours, you need to employ the math library function Floor which separates the whole portion from the fractions, as shown in this excerpt of your program:
// Display total minutes excercised to the screen
hour = Math.Floor(runningTotal / 60); // <-- note change here
minutes = runningTotal % 60;
To do it without using Floor, you could subtract the minutes part before you divide, like this:
// Display total minutes excercised to the screen
minutes = runningTotal % 60; // <-- calculate minutes first
hour = (runningTotal - minutes) / 60; // <-- subtract them before dividing
Luke Glazebrook
13,564 PointsHi Hyun!
What exactly do you want to change because you are being given the right output? Did you want to cap the amount of trailing digits that the number can contain or something?
-Luke
Derek Derek
8,744 PointsBefore I changed my variables to doubles, when my input was 20 minutes, the code returned 0 hours and 20 minutes. Now, it returns 0.33333 hours and 20 minutes.. I was wondering if there is a way for me to keep the variables as doubles but make the code to return 0 hours and 20 minutes.. Thank you!
Luke Glazebrook
13,564 PointsHi!
If you wanted to you would have to write a more complex function to get it to work as you wish.
-Luke