为什么进行逆变换会得到一个负数表达式?
float f = long.MaxValue;
Console.WriteLine("long to float: {0}",f);
Console.WriteLine("long Max: {0}",long.MaxValue);
Console.WriteLine("float to long casting: {0}",(long)f);
//Console.WriteLine("converting float to long: {0}",Convert.ToInt64(f));
//Above statement gives OverflowExection as expected.
OUTPUT:
long to float: 9.223372E+18
long Max: 9223372036854775807
float to long casting: -9223372036854775808
再次提醒,long.MinValue
给出了正确的结果。
Convert.ToInt64
,你会得到溢出异常。 - M.kazem Akhgary