There are a few problems with your code:
Integer division:
Since you're using integers, here's what actually happens in the calculation:
(aGrade/100) -> 0
((aGrade/100) * 50) = (0 * 50) -> 0
How to fix:
You can either use floating point calculation (as suggested in other answers), or simply invert the order of operations:
int asteriskCount = ((aGrade * 50) / 100);
That will solve the problem, and will result in 3 instead of 0.
Lack of rounding:
As mentioned above, even if you correct your calculation, you'll still get the asterisk count of 3 and not 4. The reason is that you're not rounding the result.
How to fix:
You can achieve rounding in integer division by adding half of the amount your dividing by before the division takes place. Why does this work ? Since it simulates the way you round things normally, i.e. adding 0.5 after the division and trimming the remainder.
In this example the calculation should look like this:
int roundUp = (100 / 2);
int asteriskCount = ((aGrade * 50 + roundUp) / 100);
And there you have it, now you get 4 !
Incorrect iteration length:
There's yet another problem that will cause you to get the wrong number of asterisks printed, and that is that your iterations prints one asterisk too many. This is the reason that at the moment, you're seeing one asterisk instead of none (remember that the original calculation results in 0).
When you want to iterate a certain number of times, remember that if you start from 0, you should finish before the number is reached, otherwise, you're iterating once too many.
How to fix:
The iteration should be:
for (int i=0; i<asteriskCount; i++) {
System.out.print("*");
}
Good luck !