c_开发经验11.doc_第1页
c_开发经验11.doc_第2页
c_开发经验11.doc_第3页
c_开发经验11.doc_第4页
c_开发经验11.doc_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.1 数字处理技巧本实例主要介绍如何对计算结果四舍五入。本实例主要是通过Math类的Pow方法来实现的。运行程序,在文本框中输入数字,单击“确定”按钮四舍五入文本框中的数字。主要代码如下: public static double Round(double d, int i) if (d = 0) d += 5 * Math.Pow(10, -(i + 1);/ else d += -5 * Math.Pow(10, -(i + 1); string str = d.ToString(); string strs = str.Split(.); int idot = str.IndexOf(.); string prestr = strs0; string poststr = strs1; if (poststr.Length i) poststr = str.Substring(idot + 1, i);/截取需要位数 if (poststr.Length 0; i-) int Data = Convert.ToInt16(TempTemp.Length - i); Info += BaseData - 48; Info += Scalei - 1; else for (int i = Temp.Length; i 0; i-) int Data = Convert.ToInt16(TempTemp.Length - i); Info += BaseData - 48; Info += Scalei+1; textBox2.Text = Info; 本实例主要介绍如何根据生日自动计算员工年龄。通常的方法是,先从员工的生日字符中取出年份,然后用当前的日期年份减去员工出生年份,得到的整数就是员工实际年龄。主要代码如下: string m_Str = 1984-04-04; int m_Y1 = DateTime.Parse(m_Str).Year; int m_Y2 = DateTime.Now.Year; int m_Age = m_Y2 - m_Y1;本实例主要介绍如何设置货币数值中使用的小数位数。主要是使用NumberFormatInfo类的CurrencyDecimalDigits属性来设置在货币值中使用的小数位数,使用CultureInfo类的NumberFormat属性来指定字符串的域区样。语法格式如下:public int CurrencyDecimalDigits get; set; 属性值:要在货币值中使用的小数位数。InvariantInfo的默认值为2。CultureInfo类提供有关特定区域性的信息(如区域性的名称、书写系统和使用的日历)以及如何设置日期和排序字符串的格式。此类有多种重载形式,本实例使用的重载形式如下:public CultureInfo (int culture,bool useUserOverride)参数说明l culture:预定义的CultureInfo标识符、现有CultureInfo对象的LCID属性或仅Windows区域性标识符。l UseUserOverride:一个布尔值,指示是使用用户选定的区域性设置(True),还是使用默认区域性设置(False)。NumberFormat属性获取或设置NumberFormatInfo,它定义适合区域性的、显示数字、货币和百分比的格式。其语法格式如下:public virtual NumberFormatInfo NumberFormat get; set; 属性值:一个NumberFormatInfo,它定义适合区域性的、显示数字、货币和百分比的格式。主要代码如下: System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; Int64 myInt = 12345; private void button2_Click(object sender, EventArgs e) GN.CurrencyDecimalDigits = 2; MessageBox.Show(myInt.ToString(C, GN), 保留两位小数); private void button4_Click(object sender, EventArgs e) GN.CurrencyDecimalDigits = 3; MessageBox.Show(myInt.ToString(C, GN), 保留三位小数); 本实例主要介绍如何自定义货币值中的小数点,主要是使用NumberFormatInfo类的CurrencyDecimalSeparator属性来完成的。运行程序,效果如图5.1和图5.2所示。 图5.1 自定义$符 图5.2 自定义*符CurrencyDecimalSeparator属性获取或设置要在货币值中用做小数点分隔符的字符串。其语法格式如下:public string CurrencyDecimalSeparator get; set; 属性值:要在货币值中用做小数点分隔符的字符串,默认值为“.”。主要代码如下: System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; Int64 myInt = 123456789; private void button1_Click(object sender, EventArgs e) GN.CurrencyDecimalSeparator = $; MessageBox.Show(定义前:+myInt.ToString(C)+n+定义后:+myInt.ToString(C, GN),自定义小数点为$符); private void button2_Click(object sender, EventArgs e) GN.CurrencyDecimalSeparator = *; MessageBox.Show(定义前: + myInt.ToString(C) + n + 定义后: + myInt.ToString(C, GN), 自定义小数点为*符); 本实例主要介绍如何自定义货币值中对小数点左边数字分组字符,主要是使用NumberFormatInfo类的CurrencyGroupSeparator属性来设置的。运行程序,其效果如图5.3所示。CurrencyGroupSeparator属性获取或设置在货币值中对小数点左边数字进行分组的字符串。其语法格式如下:public string CurrencyGroupSeparator get; set; 属性值:在货币值中对小数点左边数字进行分组的字符串,默认值为“,”。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(en-US, false).NumberFormat; Int64 myInt = 123456789; GN.CurrencyGroupSeparator = 、; MessageBox.Show(定义前: + myInt.ToString(C) + n + 定义后: + myInt.ToString(C, GN), 分组字符用、号); 本实例主要介绍如何自定义货币值中的小数点,主要是使用NumberFormatInfo类的CurrencyGroupSizes属性来完成的。运行程序,效果如图5.4和图5.5所示。 图5.4 2,3,1格式 图5.5 2,3,2格式CurrencyGroupSizes属性获取或设置货币值中小数点左边每一组的位数。其语法格式如下:public int CurrencyGroupSizes get; set; 属性值:货币值中小数点左边每一组的位数,默认值是一个一维数组,该数组只包含一个设置为3的元素。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo CN = new System.Globalization.CultureInfo(en-US, false).NumberFormat; Int64 myInt = 123456789012345; int mySizes1 = 2, 3, 1 ; int mySizes2 = 2, 3, 2 ; CN.CurrencyGroupSizes = mySizes1; MessageBox.Show(定义前: + myInt.ToString(C) + n + 定义后: + myInt.ToString(C, CN), 2, 3, 1 格式); CN.CurrencyGroupSizes = mySizes2; MessageBox.Show(定义前: + myInt.ToString(C) + n + 定义后: + myInt.ToString(C, CN), 2, 3, 2 格式); 本实例主要介绍如何使用NumberFormatInfo类的PercentDecimalDigits属性来设置百分比值中小数点后面保留的位数。运行程序,效果如图5.6所示。PercentDecimalDigits属性获取或设置在百分比值中使用的小数位数。其语法格式如下:public int PercentDecimalDigits get; set; 属性值:在百分比值中使用的小数位数,默认值为2。主要代码如下:private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; Double myInt = 0.9774; string strInfo=null; GN.PercentDecimalDigits = 1; strInfo += 保留一位小数: + string.Format(myInt.ToString(P,GN); GN.PercentDecimalDigits = 2; strInfo += n保留二位小数: + string.Format(myInt.ToString(P, GN); GN.PercentDecimalDigits = 4; strInfo += n保留四位小数: + string.Format(myInt.ToString(P, GN); GN.PercentDecimalDigits = 6; strInfo += n保留六位小数: + string.Format(myInt.ToString(P, GN); MessageBox.Show(strInfo,定义效果); 本实例主要介绍如何使用NumberFormatInfo类的PercentDecimalSeparator属性设置百分比小数点分隔符的字符串。运行程序,效果如图5.7所示。PercentDecimalSeparator属性设置在百分比值中用做小数点分隔符的字符串。其语法格式如下:public string PercentDecimalSeparator get; set; 属性值:在百分比值中用做小数点分隔符的字符串,默认值为“.”。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; Double myInt = 0.122434; string strPercent = null; GN.PercentDecimalSeparator = ; strPercent += 用空格代替小数点: + myInt.ToString(P, GN); GN.PercentDecimalSeparator = ; strPercent += n用符代替小数点: + myInt.ToString(P, GN); GN.PercentDecimalSeparator = #; strPercent += n用#符代替小数点: + myInt.ToString(P, GN); GN.PercentDecimalSeparator = *; strPercent += n用*号代替小数点: + myInt.ToString(P, GN); MessageBox.Show(strPercent, 定义效果); 本实例主要介绍如何使用NumberFormatInfo类的PercentGroupSeparator属性设置百分比小数点左边的分节号。运行程序,效果如图5.8所示。PercentGroupSeparator属性获取或设置在百分比值中对小数点左边数字进行分组的字符串。其语法格式如下:public string PercentGroupSeparator get; set; 属性值:在百分比值中对小数点左边数字进行分组的字符串,默认值为“,”。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; Double myInt = 12345.678; string strSperar = null; GN.PercentGroupSeparator = ,; strSperar += 用逗号作分隔符: + myInt.ToString(P, GN); GN.PercentGroupSeparator = 、; strSperar += n用顿号作分隔符: + myInt.ToString(P, GN); GN.PercentGroupSeparator = ; strSperar += n用单引号作分隔符: + myInt.ToString(P, GN); MessageBox.Show(strSperar, 定义效果); 本实例主要介绍如何使用NumberFormatInfo类的PercentGroupSizes属性设置百分比小数点左边每一组的位数。运行程序,效果如图5.9所示。PercentGroupSizes属性获取或设置百分比值中小数点左边的每一组的位数。其语法格式如下:public int PercentGroupSizes get; set; 属性值:百分比值中小数点左边的每一组的位数。默认值是一个一维数组,该数组只包含一个设置为3的元素。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; Double myInt= 510214720805231.4835; string strInt =null; strInt+= 默认格式: + myInt.ToString(p,GN); int MySizes1 = 2, 3, 4 ; GN.PercentGroupSizes=MySizes1; strInt+= n 2, 3, 4 格式: + myInt.ToString(p,GN); int MySizes2 = 2, 3, 2 ; GN.PercentGroupSizes=MySizes2; strInt+= n 2, 3, 2 格式: + myInt.ToString(p,GN); int MySizes3 = 1, 2, 3 ; GN.PercentGroupSizes=MySizes3; strInt+= n 1, 2, 3 格式: + myInt.ToString(p,GN); MessageBox.Show(strInt, 设置效果, MessageBoxButtons.OK, MessageBoxIcon.Information); 本实例主要介绍如何使用NumberFormatInfo类的PercentSymbols属性设置百分比符号。运行程序,效果如图5.10所示。PercentSymbols属性用于获取或设置用作百分比符号的字符串。其语法格式如下:public string PercentSymbol get; set; 属性值:用作百分比符号的字符串,默认值为“%”。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN,false).NumberFormat; double intPrecnt = 102578.6584; string strPrecnt = null; GN.PercentSymbol = %; strPrecnt += 默认符号: + intPrecnt.ToString(p,GN); GN.PercentSymbol = &; strPrecnt += n自定义符号&: + intPrecnt.ToString(p, GN); GN.PercentSymbol = *; strPrecnt += n自定义符号*: + intPrecnt.ToString(p, GN); GN.PercentSymbol = #; strPrecnt += n自定义符号#: + intPrecnt.ToString(p, GN); MessageBox.Show(strPrecnt, 设置效果, MessageBoxButtons.OK, MessageBoxIcon.Information); 本技巧主要介绍如何使用NumberFormatInfo类的NumberDecimalDigits属性设置数字小数点右边的保留位数,效果如图5.11所示。NumberDecimalDigits属性获取或设置在数值中使用的小数位数。其语法格式如下:public int NumberDecimalDigits get; set; 属性值:在数值中使用的小数位数,默认值为2。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN= new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; double intNumber = 4458524.2568412547; string strNumber = ; strNumber+=默认小数位数:+intNumber.ToString(N); GN.NumberDecimalDigits = 3; strNumber += n保留三位小数: + intNumber.ToString(N,GN); GN.NumberDecimalDigits =5; strNumber += n保留五位小数: + intNumber.ToString(N,GN); GN.NumberDecimalDigits = 7; strNumber += n保留七位小数: + intNumber.ToString(N,GN); MessageBox.Show(strNumber, 设置效果, MessageBoxButtons.OK, MessageBoxIcon.Information); 本实例主要介绍如何使用NumberFormatInfo类的NumberGroupSizes属性设置数字小数点左边数字分组位数,效果如图5.12所示。NumberGroupSizes属性获取或设置数值中小数点左边每一组的位数。其语法格式如下:public int NumberGroupSizes get; set; 属性值:数值中小数点左边每一组的位数。默认值是一个一维数组,该数组只包含一个设置为3的元素。主要代码如下: private void button1_Click(object sender, EventArgs e) System.Globalization.NumberFormatInfo GN = new System.Globalization.CultureInfo(zh-CN, false).NumberFormat; double intNumber = 711413414517.12; string strNumber = null; strNumber += 默认格式: + intNumber.ToString(N,GN) ; int MySizes1 = 1, 3, 4 ; GN.NumberGroupSizes = MySizes1; strNumber += n 1, 3, 4 格式: + intNumber.ToString(N, GN); int MySizes2 = 2, 3, 0 ; GN.NumberGroupSizes = MySizes2; strNumber += n 2, 3, 0 格式: + intNumber.ToString(N, GN); int MySizes3 = 2, 6, 2 ; GN.NumberGroupSizes = MySizes3; strNumber += n 2, 6, 2 格式: + intNumber.ToString(N, GN); MessageBox.Show(strNumber, 设置效果, MessageBoxButtons.OK, MessageBoxIcon.Information); 本实例主要用NumberFormatInfo类的CurrencyGroupSeparator属性格式化输入数据为货币格式。CurrencyGroupSeparator属性获取或设置在货币值中对小数点左边数字进行分组的字符串。运行程序,在输入数据文本框中,输入数字,单击“格式化输入数据为货币格式”按钮,效果如图5.13所示。主要代码如下:private void button1_Click(object sender, EventArgs e) NumberFormatInfo nfi = new CultureInfo(zh-CN, false).NumberFormat; nfi.CurrencyGroupSeparator = ; textBox2.Text = Convert.ToDouble(textBox1.Text).ToString(c,nfi); 本实例介绍如何使用Math类的BigMul方法实现数字的乘积。此方法生成两个 32 位数字的完整乘积,语法格式如下:public static long BigMul (int a,int b)运行程序,效果如图5.14所示。图5.14 两个整数的乘积主要代码如下: private void button1_Click(object sender, EventArgs e) int int1 = Int32.MaxValue; int int2 = Int32.MaxValue; long longResult; longResult = Math.BigMul(int1, int2); string str = 整数 + Int32.MaxValue.ToString() + 与 + 整数 + Int32.MaxValue.ToString() + 乘积 n; str += 结果: + longResult.ToString(); MessageBox.Show(str, 两个整数的乘积, MessageBoxButtons.OK, MessageBoxIcon.Information); 本实例主要介绍利用Convert类的ToInt32方法如何把二进制数转化为十进制数。Convert类将一个基本数据类型转换为另一个基本数据类型。ToInt32方法将指定的值转换为32位无符号整数。此方法有多种重载形式,其实现二进制转换为十进制数的语法如下:public static uint ToUInt32 (string value,int fromBase)参数说明l value:包含数字的String。l fromBase:value中数字的基数,必须是2、8、10或16。l 返回值:等效于value中的数字的32位有符号整数。如果value为空则返回值为零。运行程序,在二进制文本框中输入二进制数,单击“二进制转换为十进制”按钮,效果如图5.15所示。主要代码如下: private void button1_Click(object sender, EventArgs e) textBox2.Text = Convert.ToInt32(textBox1.Text.Trim(),2).ToString(); 本实例实现将二进制数转换为八进制数。首先利用Convert类的ToInt32方法把二进制数转换为十进制数,然后利用Convert类的ToString方法转换成八进制数。ToString方法将指定的32位有符号整数的值转换为它的等效String表示形式。public static string ToString (int value,int toBase)参数说明l value:32位的有符号整数。l ToBase:返回值的基数,必须是2、8、10或16。返回值:以toBase为基数的value的String表示形式。主要代码如下: private void button1_Click(object sender, EventArgs e) /把二进数转换为十进制数 int intTen = Convert.ToInt32(textBox1.Text.Trim(),2); /把十进制数转换为八进制数 textBox2.Text = Convert.ToString(intTen,8); 本实例主要介绍如何将二进制数转换为十六进制数。首先利用Convert类的ToInt32方法把二进制数转换为十进制数,然后利用Convert类的ToString方法转换成十六进制数。运行程序,在二进制文本框中输入二进制数,单击转换按钮,效果如图5.16所示。图5.16 二进制转换为十六进制主要代码如下: private void button1_Click(object sender, EventArgs e) /把二进制数转换为十进制数 int intTen = Convert.ToInt32(textBox1.Text.Trim(),2); /把十进制数转换为十六进制数 textBox2.Text = Convert.ToString(intTen,16); 本实例主要介绍如何用Random类的Next方法随机生成09之间的整数。Random类表示伪随机数生成器,一种能够产生满足某些随机性统计要求的数字序列的设备。Next方法返回一个指定范围内的随机数。主要代码如下:Random rd = new Random(); private void button1_Click(object sender, EventArgs e) MessageBox.Show(0-9随机整数:n+rd.Next(0,9).ToString(),随机整数, MessageBoxButtons.OK, MessageBoxIcon.Information); 本实例主要介绍如何用Random类的NextDouble方法随机生成01之间的数。RNextDouble方法返回一个介于0.0和1.0之间的随机数。运行程序,单击“确定”按钮,效果如图5.17所示。主要代码如下:Random rd = new Random(); private void button1_Click(object sender, EventArgs e) MessageBox.Show(0-1随机小数:n + rd.NextDouble(), 随机小数, MessageBoxButtons.OK, MessageBoxIcon.Information); 本实例介绍如何使用Math类的Abs方法实现数字的绝对值。此方法有多种重载形式,本实例所用的重载形式如下:public static decimal Abs (decimal value)此重载形式返回Decimal数字的绝对值。运行程序,效果如图5.18所示。主要代码如下: private void button1_Click(object sender, EventArgs e) sbyte sb1 = -16, sb2 = 16; float fl1 = -12.0f, fl2 = 12.0f; string str = ; str += sbyte类型,数值sb1:-16,数值sb2: 16 + n; str += 数值sb1绝对值: + Convert.ToString(Math.Abs(sb1) + n; str += 数值sb2绝对值 + Convert.ToString(Math.Abs(sb1) + n; str += float类型,数值fl1:-12.0f,数值fl2: 12.0f n; str += 数值fl1绝对值: + Convert.ToString(Math.Abs(fl1) + n; str += 数值fl2绝对值: + Convert.ToString(Math.Abs(fl2) + n; MessageBox.Show(str,数值绝对值,MessageBoxButtons.OK,MessageBoxIcon.Information); 图5.18 数字绝对值5.2 控件数据处理技巧本实例主要介绍如何使用OnKeyPress方法、SelectNextControl方法实现C#中用回车完成TAB的功能。要想使SelectNextControl方法起作用,先将窗体的keypreview属性改为True。重写OnKeyPress方法,在OnKeyPress方法中调用SelectNextControl方法。主要代码如下: private void Form1_Load(object sender, EventArgs e) this.Ke

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论