57.浮点数与整数的类型转换

  1. 57.浮点数与整数的类型转换
    1. 57.1 题目
    2. 57.2 深入解析
    3. 57.3 答题示例
    4. 57.4 关键词联想

57.浮点数与整数的类型转换


57.1 题目

float f = 10.4;
int i = f / 2;
Console.WriteLine(i);

请问上面这段代码的打印结果是多少?


57.2 深入解析

会报错。代码片段中存在两个错误:

  1. float f = 10.4; 应该改为 float f = 10.4f;,因为在C#中浮点数默认是 double 类型,需要显式地加上 f 后缀来表示 float 类型。
  2. int i = f / 2; 应该改为 int i = (int)(f / 2);,因为 f / 2 的结果是 float 类型,不能直接赋值给 int 类型,需要进行显式类型转换。

修改后的代码:

float f = 10.4f; // 定义浮点数时加上f后缀
int i = (int)(f / 2); // 显式类型转换
Console.WriteLine(i); // 打印结果

这段代码将打印结果 5,因为 10.4 / 2 = 5.2,然后强制转换为 int 类型时, 5.2 将被截断为 5


57.3 答题示例

这段代码会因编译错误无法直接运行,需修正后才能得到结果:

  1. 原代码错误:float f = 10.4; 中,10.4默认是double类型,需加f后缀声明为float(即10.4f);int i = f / 2; 中,f / 2结果为float类型,不能直接赋值给int,需显式转换(即(int)(f / 2))。

  2. 修正后代码运行时,10.4f / 2 = 5.2f,强制转换为int时小数部分被截断,因此打印结果为 5


57.4 关键词联想

C#类型转换
float后缀
显式转换
截断
编译错误
数值运算



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏