[C#]double转int(转)


double转int 一、 Convert.ToInt32和int强制转换 static void Main(string[] args) { double dbTmp = 234.44; int iTmp = Convert.ToInt32(dbTmp); int iTmp1 = (int)dbTmp; Console.WriteLine(iTmp1.ToString()); Console.Read(); } 答案是一样的,都是234. 现在我们将数值变成234.54.现在就有个四舍五入的问题了,那下面的代码会得到什么数字呢? static void Main(string[] args) { double dbTmp = 234.54; int iTmp = Convert.ToInt32(dbTmp); //int iTmp1 = (int)dbTmp;
 Console.WriteLine(iTmp.ToString()); } 答案是235. 如果改成用(int)强制转换呢? static void Main(string[] args) { double dbTmp = 234.54; //int iTmp = Convert.ToInt32(dbTmp);
   int iTmp1 = (int)dbTmp; Console.WriteLine(iTmp1.ToString()); } 这次的答案是234,而不是四舍五入。 那么这两种转换方式的区别是什么呢? 1. (int)是类型转换,Convert.ToInt32是内容转换。 2. (int)是舍去转换,Convert.ToInt32是四舍五入。 string转int 现在我们变换下代码,如下: static void Main(string[] args) { string strTmp = "234.94"; int iTmp = Int32.Parse(strTmp); Console.WriteLine(iTmp.ToString()); } 会输出什么结果呢?234?不是,程序出错。 Input string was not in a correct format. 因为234.94不是一个int,而是一个double。这时候我们需要改用TryParse. static void Main(string[] args) { string strTmp = "234.94"; int iTmp = 0; if (Int32.TryParse(strTmp, out iTmp)) Console.WriteLine(iTmp.ToString()); else Console.WriteLine("invalid number."); } 这时候程序就不会跳出异常了。输出invalid number。

出处:http://blog.sina.com.cn/s/blog_6c762bb30101asfq.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM