【问题标题】:don't correct out put in C# [duplicate]不要纠正 C# [重复]
【发布时间】:2019-06-24 06:20:40
【问题描述】:

示例我输入 1357 并编程输出 106 而不是 10

        string num = Console.ReadLine();
        Console.Write(Convert.ToInt32(num[1]) + Convert.ToInt32(num[3]));
        Console.ReadKey();

【问题讨论】:

  • 为什么要这样做?使用调试器检查字符串、字符和转换结果的运行时值。提示:Console.WriteLine(Convert.ToInt32(num[1])); 为 51,ASCII 码位为 3
  • 您正在添加“3”和“7”的支持字符的整数值,分别为 51 和 55。您想添加这些字符的解析值。
  • 我想要 10 作为输出 , num[1] = 3 , num[3] = 7;
  • 是的,但请注意num[1] = '3',而不是3

标签: c#


【解决方案1】:

首先将单个字符转换为字符串,然后再转换为整数。 Convert 将 char 直接转换为整数时会使用 Unicode 码位值。

var value = Convert.ToInt32(num[1].ToString()) + Convert.ToInt32(num[3].ToString());

【讨论】:

  • 很好地解释了正在发生的事情。
猜你喜欢
  • 2015-11-22
  • 2013-04-14
  • 1970-01-01
  • 2015-11-07
  • 1970-01-01
  • 2015-11-30
  • 1970-01-01
  • 2021-12-27
  • 2016-02-13
相关资源
最近更新 更多