Потому что у Вас в системе установлена запятая в качестве разделителя, а не точка.
string dec_sep = Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator;
string num = project.Variables["num"].Value.Replace(",", dec_sep).Replace(".", dec_sep); // Меняем на системный разделитель
decimal res = Decimal.Parse(num, System.Globalization.NumberStyles.Any);
return res.ToString().Replace(",", ".");
Данный код автоматически заменит разделитель на тот, что установлен в системе.
Теперь можете использовать хоть точку, хоть запятую