I searched on google the 'System.FormatException' and this link seemed useful
this link
Here it says that "You can't convert a null value to a meaningful value through Convert. Your best option is to check for null first and then assign a value of 0 (or whatever) to the result (whereever Convert was sending its results too)."
You can check of null or you can try this:
int NoOfRooms ;
bool result = Int32.TryParse(txtNoRooms.Text, out NoOfRooms);
Here result will be true if the conversion was finalized successfully and false otherwise. And the same for the double value. You can then use the Boolean values in order to determine if the conversion finished successfully and take some actions accordingly.