NaN возникает, когда случается попытка произвести арифметическую операцию с не числовыми данными. Когда один из аргументов например строка и никак не может быть преобразован в число.
Например вы считаете разницу: var r = a - b; Если a = 3, b = 2, то r будет 1, но если один из этих аргументов получит что-то странное, например вместо числа юзер введет скажем "вася", то в итоге получим 3 - "вася" = NaN
Решением вашей проблемы, будет проверка всех полей для ввода, так чтобы не допустить строк там, где ожидается число.