You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HackerRank 30天编码:为何需用Convert处理输入?

HackerRank 30天编码挑战Day2:类型转换疑问解答

我的代码

int i = 4;
double d = 4.0;
string s = "HackerRank ";

int a = 12;
double b = 4.0;
string c = "is the best place to learn and practice coding!";


a = Convert.ToInt32(Console.ReadLine());
b = Convert.ToDouble(Console.ReadLine());
c = Console.ReadLine();


Console.WriteLine(i + a);
Console.WriteLine((d + b).ToString("F1"));
Console.WriteLine(s + c);

我的疑问

我无法理解为何要使用Convert类,为什么要将Console.ReadLine()的结果转换类型后赋值给变量?


题目背景

目标

今日我们讨论数据类型,可查看教程标签获取学习资料和教学视频!

任务

完成编辑器中的代码,变量i、d、s已声明并初始化。你需要:

  • 声明3个变量:一个int类型、一个double类型、一个string类型。
  • 从标准输入读取3行输入,按输入格式顺序初始化你的变量。
  • 使用运算符执行以下操作:
    • 在新行打印i与你的int变量之和。
    • 在新行打印d与你的double变量之和,保留一位小数。
    • 将s与你读取的输入字符串拼接后打印在新行。

注意:如果使用的语言不支持用+拼接字符串(如C语言),可直接在同一行连续打印两个变量,需先打印编辑器提供的字符串,再打印你读取的输入字符串。

输入格式

  • 第一行是需与i相加的整数;
  • 第二行是需与d相加的浮点数;
  • 第三行是需与s拼接的字符串。

输出格式

  • 第一行打印两个整数之和;
  • 第二行打印两个浮点数之和(保留一位小数);
  • 第三行打印拼接后的字符串。

示例输入

12
4.0
is the best place to learn and practice coding!

示例输出

16
8.0
HackerRank is the best place to learn and practice coding!

解释

整数4与12相加得16;
浮点数4.0与4.0相加得8.0;
将"HackerRank "与输入字符串拼接得到最终结果。
注意:若直接将示例值赋值给变量而非读取标准输入,将无法通过挑战。


解答

核心原因很直接:Console.ReadLine()的返回值永远是字符串类型——不管你输入的是整数、小数还是文字,它都会把输入内容当成一串字符读进来。

而你的变量a是int(整数)类型、b是double(浮点数)类型,C#是强类型语言,不同数据类型之间不能直接赋值,也不能直接做数学运算。比如你输入的12,读进来是字符串"12",如果直接赋值给int类型的a,编译器会报错;要是直接拿这个字符串和int类型的i做加法,同样会报错。

所以必须用Convert.ToInt32()把输入的字符串转换成整数类型,用Convert.ToDouble()把输入的字符串转换成浮点数类型,这样才能和已有的i、d进行加法运算。

至于变量c本身就是string类型,和Console.ReadLine()的返回类型一致,所以直接赋值就行,不需要转换。

内容的提问来源于stack exchange,提问作者fırtına necati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:58:06