Потому что у Вас в системе установлена запятая в качестве разделителя, а не точка.
string dec_sep = Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator;
string num = project.Variables["num"].Value.Replace(",", dec_sep).Replace(".", dec_sep); // Меняем на системный разделитель...