1. 首页
  2. 公告
  3. 内容

C# int类型的强制转换整理

更新:2017/7/29 22:37:53    291


一、C#中将浮点数转换为整数

1.使用小括号方式强制转换,此种方式的转换是舍精度处理,即只保留当前数字的整数部分,对于小数部分舍去

2.使用Convert.ToInt32(xxx) 方式,此种方式是四舍五入的方式处理

注:

1.对于将浮点数转换成整数推荐使用方式1

2.对于将字符串的数字类型推荐使用方式2,应为对于null默认返回0,如果是空字符串也抛出异常

3.当对于将double或decimal类型转换为int类型时,使用Convert类许多时候会因为四舍五入出现逻辑问题。

代码示例:

1.


[csharp] view plain copy print?

  1. System.Console.WriteLine((int)0.75); //输出:0  

  2. System.Console.WriteLine((int)0.75M);//输出:0  

  3. System.Console.WriteLine(Convert.ToInt32(0.75)); //输出:1  

  4. System.Console.WriteLine(Convert.ToInt32(0.75M));// 输出:1  


[csharp] view plain copy print?

  1. System.Console.WriteLine(Convert.ToInt32(null));//输出:0  



2.底板取整示例:


[csharp] view plain copy print?

  1. //底板取整  

  2. decimal result = Math.Floor(7.0M / 10);  

  3. System.Console.WriteLine(result); //输出:0  

  4.   

  5. int result2 = (int)Math.Floor(6.0 / 10);  

  6. System.Console.WriteLine(result2); //输出:0  



更多:


C# 扩展方法整理
C# lock关键词/lock语句块、线程锁