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为什么会这样啊?这两种转换有什么区别吗?
展开
 我来答
匿名用户
2013-10-25
展开全部
对于强转,由double转为整数,是直接舍去的对于convert,并非简单的4舍5入,在方法说明中可以看到 (舍入为最接近的 8 位有符号整数的 value。如果 value 为两个整数中间的数字,则返回二者中的偶数;即 4.5 转换为 4,而 5.5 转换为 6)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-25
展开全部
第一种转换:直接取整数(不会四舍五入)的,因此5.X的(X)被舍去,只有5但是第二种转换,自动四舍五入变成整数,所以得到6.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式