簡體   English   中英

從將字符轉換為 integer 獲取不同的值

[英]Getting different values from convert char to integer

當我顯示 'i' 變量時,這將是一個 char 值

{
  class Program {
    static void Main(string[] args) {
      var max = 0;
      var lista = new char[] {
        '1',
        '2',
        '3',
        '4'
      };
      foreach(char i in lista) {
        Console.WriteLine(i);
        /* var hola =  Convert.ToInt32(i);
          Console.WriteLine(hola);*/
      }
    }
  }
}

我明白了:

> 1 2 3 4

但是,當將 'i' 轉換為 int

var max = 0;
var lista = new char[] {
  '1',
  '2',
  '3',
  '4'
};
foreach(char i in lista) {
  var hola = Convert.ToInt32(i);
  Console.WriteLine(hola);
}    
            

我明白了:

49 50 51 52

知道可能是什么問題嗎? 我想獲得相同的值,所以我可以將它們評估為整數並獲得其中最大的值,但我不能。

當您將char轉換為int時,您將獲得該字符的 ASCII 值。 這些值的巧妙之處在於它們是連續的,因此如果減去'0'的值(0字符),您可以將表示數字的字符轉換為該數字:

var hola =  i - '0';

如果您想要文字字符而不是字符的 ascii 編號,請使用ToString()方法

var hola =  Convert.ToInt32(i.ToString());

WriteLine 方法在內部轉換參數字符串。 因此,您可以擁有您想要的價值。 ToInt 方法返回該字符的 ASCII 值。 您必須將您的 i 值轉換為字符串i.ToString()或者您可以簡單地從轉換后的值中減去 48。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM