You're using AddWithValue() incorrectly.
SqlCmd.Parameters.AddWithValue("@PRINCIPAL",Single.Parse(txt_Principal.Text,CultureInfo.InvariantCulture.NumberFormat));
or
SqlCmd.Parameters.Add("@PRINCIPAL", SqlDbType.Decimal);
SqlCmd.Parameters["@PRINCIPAL"].Value = Single.Parse(txt_Principal.Text, CultureInfo.InvariantCulture.NumberFormat);