C#类型转换问题Convert.ToByte与(Byte)强制转换问题
Console.WriteLine("请输入分数");stringscoretext=Console.ReadLine();floatscore=float.Parse(...
Console.WriteLine("请输入分数");
string scoretext = Console.ReadLine();
float score = float.Parse(scoretext);
byte level = (byte)(score / 10);使用这种转换的话,输入56,结果level为5如果是 byte level = Convert.ToByte(score / 10);,输入56,结果level为6为什么会这样啊?这两种转换有什么区别吗? 展开
string scoretext = Console.ReadLine();
float score = float.Parse(scoretext);
byte level = (byte)(score / 10);使用这种转换的话,输入56,结果level为5如果是 byte level = Convert.ToByte(score / 10);,输入56,结果level为6为什么会这样啊?这两种转换有什么区别吗? 展开
2个回答
2013-10-25
展开全部
对于强转,由double转为整数,是直接舍去的对于convert,并非简单的4舍5入,在方法说明中可以看到 (舍入为最接近的 8 位有符号整数的 value。如果 value 为两个整数中间的数字,则返回二者中的偶数;即 4.5 转换为 4,而 5.5 转换为 6)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-25
展开全部
第一种转换:直接取整数(不会四舍五入)的,因此5.X的(X)被舍去,只有5但是第二种转换,自动四舍五入变成整数,所以得到6.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询