1. decimal 类型调用ToString()方法后没把末尾的0去掉的解决办法:
例子:decimal? money = Convert.ToDecimal(10.8950);string moneyStr=money.Value.ToString(); 结果在同一台机子,两个项目里面会出现两个不同的结果。结果一:moneyStr="10.895";结果二:moneyStr="10.8950"; 此结果并没把末尾的0去掉。如果使用如下方式就可以去掉,不会出现在同一台机子,两个项目里面会出现两个不同的结果。moneyStr=money.Value.ToString("G0"); 结果:10.895.
2.C#中的??的释义以及用法:
如果 ?? 运算符的左操作数非 null,该运算符将返回左操作数,否则返回右操作数。 为了减少可空类型的代码量,遇到null的时候 C#提供了??操作符来获取如果为空的默认值。 static void Main(string[] args) {int? nVal1 = null;int? nVal2 = 5;// nVal1为空,相乘后还是null,输出0作为默认值Console.WriteLine(2 * nVal1 ?? 0);// nVal2非空,取计算值输出,输出10Console.WriteLine(2 * nVal2 ?? 0); }
3.输入日志到Windows日志中:
/// <summary>/// 全局应用程序错误/// </summary>protected void Application_Error(){var ex = Server.GetLastError().GetBaseException();//将错误日志写入windows 日志中EventLog.WriteEntry("yunshangfamen", ex.ToString(), EventLogEntryType.Error);var sb = new System.Text.StringBuilder("====================错误信息==================\r\n");sb.AppendFormat("错误消息:{0}\r\n", ex.Message);sb.AppendFormat("错误页面:{0}\r\n", Request.Url);sb.AppendFormat("错误时间:{0}\r\n", DateTime.Now.ToString());sb.AppendFormat("堆栈跟踪:{0}\r\n", ex.StackTrace);sb.AppendFormat("\r\n错误程序:{0}\r\n", ex.Source);sb.AppendFormat("目标地点:{0}\r\n", ex.TargetSite);Log.WriteLog(sb.ToString());}