if (revolutions >= 10) {
//Update RPM every 10 counts
// calculate the revolutions per milli(second)
rpmilli = revolutions/(millis() - timeold);
timeold = millis();
revolutions = 0;
Between these three different uses of revolutions, the interrupt could have fired a dozen times. You need to copy revolutions and record time, reset revolutions, then diddle around using the values you saved.
You should not be calling millis() twice, either.