aspose file tools*
The moose likes Beginning Java and the fly likes simple math operation for a progress bar Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "simple math operation for a progress bar" Watch "simple math operation for a progress bar" New topic
Author

simple math operation for a progress bar

Alonso Tapia
Greenhorn

Joined: May 12, 2011
Posts: 12
I'm currenlty delevoping a progress bar for an application with a fixed number of iterations. I have an event listener that monitors the process so I know the current cicle of the process. My problem is when I try to calculate the percentage of the current cicle, relative to the total number of cicles. This is my code:



Fisrt, maybe mention that mon.getCurrentCicle() actually gets the cicles left rather than the current.

So, ciclos is a fixed number and epoca changes every cicle, but when I calculate the percenage with epoca_per it gets stuck at 0.
It's a very simple operation and I've confirmed that epoca actually changes, but I have no clue why epoca_per doesn't change.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39784
    
  28
Try 100 * epoca / ciclos. The value of epoca must never rise above 21474836 if it is an int.

Why? You are doing integer division: 9999 / 10000 returns 0. If you want to get 99% from 9999 / 10000, you will have to try 100 * 9999 / 10000, which is evaluated as 999900 / 10000, which comes to 99.
Alonso Tapia
Greenhorn

Joined: May 12, 2011
Posts: 12
ohh so simple..
thanks!!
Benjamin Thvedt
Ranch Hand

Joined: Jul 29, 2011
Posts: 31
Integer division has been messing me up too...I didn't know you can multiply it by another int to get an anwser, I have just been using all doubles up until now!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: simple math operation for a progress bar