首页 > 代码库 > C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别
C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别
int.TryParse,Convert.ToInt32,(int)
这几种类型在将浮点类型转换整数时是有差别
Convert.ToInt32则会进行四舍五入
int.TryParse只能转换整数,即浮点类型全部会返回0
(int)不会进行四舍五入,只取整数部分,小数点部分完全舍弃
using System;
public class DoubleToInt
{
public static void Main()
{
Test_DoubleToInt( 0.4 );
Test_DoubleToInt( 0.5 );
Console.ReadKey();
}
static void Test_DoubleToInt( double _testNumber)
{
int _i= 0 ;
for ( int i= 0 ;i< 10 ;i++)
{
if (i!= 0 ){
_testNumber+= 1 ;
}
Console.WriteLine( string .Format( "(int){0}={1}" ,_testNumber,( int )(_testNumber)));
Console.WriteLine( string .Format( "Convent.ToInt32({0})={1}" ,_testNumber,Convert.ToInt32(_testNumber)));
//int.TryParse只有转换整数类型,其他返回为0
int .TryParse(_testNumber.ToString(), out _i);
Console.WriteLine( string .Format( "int.TryParse({0})={1}" ,_testNumber,_i));
}
Console.WriteLine( string .Empty);
} }
public class DoubleToInt
{
public static void Main()
{
Test_DoubleToInt( 0.4 );
Test_DoubleToInt( 0.5 );
Console.ReadKey();
}
static void Test_DoubleToInt( double _testNumber)
{
int _i= 0 ;
for ( int i= 0 ;i< 10 ;i++)
{
if (i!= 0 ){
_testNumber+= 1 ;
}
Console.WriteLine( string .Format( "(int){0}={1}" ,_testNumber,( int )(_testNumber)));
Console.WriteLine( string .Format( "Convent.ToInt32({0})={1}" ,_testNumber,Convert.ToInt32(_testNumber)));
//int.TryParse只有转换整数类型,其他返回为0
int .TryParse(_testNumber.ToString(), out _i);
Console.WriteLine( string .Format( "int.TryParse({0})={1}" ,_testNumber,_i));
}
Console.WriteLine( string .Empty);
} }
http://www.cnblogs.com/Dely/p/3791951.html
http://stackoverflow.com/questions/11431793/convert-toint32-rounds-to-the-nearest-even-number
http://stackoverflow.com/questions/311696/why-does-net-use-bankers-rounding-as-defaul
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。