При вычислениях используйте и входные и выходные переменные одних типов. Иначе ТАКИЕ ГРАБЛИ возможны...