I am very new to arduino and programming in general.
Then, you have NO business trying to use interrupts.
I have both buttons connected with an individual 10k pull up resistor to the ground.
A wiring diagram would be useful, as would using proper terminology. A pull UP resistor pulls the pin UP to 5V. A pull DOWN resistor pulls the pin DOWN to ground.
The Arduino has built-in pullup resistors, so the simplest way to connect a SWITCH is to connect one leg to ground and the other the digital pin, and then turn on the internal pullup resistor.
const double precision = 0.3; //.5 degrees precision
If you are going to have useless comments that state the obvious, they MUST be correct.
You need to delete all the stuff dealing with interrupts. There is nothing in your code that needs to respond IMMEDIATELY to a change in button state. Reading the pin once per pass through loop() is good enough. There is nothing that is going to matter if you are a few nanoseconds late reading the switch state.
delay(startup_time); //allow lcd to be initialized first
Bullshit. If your LCD is so lazy that it needs a rest on EVERY pass through loop, throw it away and get one that can work harder.
Read, understand, and embrace the blink without delay philosophy and get rid of EVERY delay(). You do not need them. AT ALL.