To begin, the attach interrupt should be done only one time, and in the setup().
There is never a need to detach interrupts, unless you are going to assign a different function to be executed on an interrupt and you don't have that rare case.
There is no reason to make revolutions a float.
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.
Paul