Well, yes I see your point about revolutions being a float. It would never be that big and I don't care about a decimal. I copied this code and modified it a bit, but left the interrupts as is because the sketch worked.
You are over my head with
Think about checking for revolutions being tested about once per second. Disable interrupts, test revolutions for zero, set a flag if zero, zero revolutions and then enable interrupts again.