2009-06-11 76 views

回答

3

您是否以字符串形式獲取值?如果是這樣,就沒有辦法明確地告訴它是哪一個,因爲有一些數字可以用兩種類型表示(實際上有很多數字)。但是可以判斷它是一個還是另一個。

public bool IsFloatOrInt(string value) { 
    int intValue; 
    float floatValue; 
    return Int32.TryParse(value, out intValue) || float.TryParse(value, out floatValue); 
} 
14

我假設你的意思是沿着線的東西...

if (value is int) { 
    //... 
} 

if (value is float) { 
    //... 
} 
4
if (value.GetType() == typeof(int)) { 
    // ... 
} 
+0

當你可以使用'is`關鍵字時,這是稍微複雜(並且效率較低)的方法。 – Noldorin 2009-06-11 13:35:26

2

如果你指的是object一個(盒裝)float/int - if(obj is float)

如果您的意思是string可能是... int.TryParse(string, out int)/float.TryParse(string, out float)

4

Double.TryParse和Int.TryParse可能是您所需要的,儘管這是假設您正在處理由用戶提供的字符串。

2

不同類型的TryParse方法返回一個布爾值。您可以使用它像這樣:

string value = "11"; 
float f; 
int i; 
if (int.TryParse(value, out i)) 
    Console.WriteLine(value + " is an int"); 
else if (float.TryParse(value, out f)) 
    Console.WriteLine(value + " is a float"); 
1

我認爲,我們在這裏決定對象的值是無論是整數或浮點數

public class Program 
    { 
     static void Main() 
     { 
      Console.WriteLine("Please enter Any Number"); 
      object value = Console.ReadLine(); 
      float f; 
      int i; 
      if (int.TryParse(Convert.ToString(value), out i)) 
       Console.WriteLine(value + " is an int"); 
      else if (float.TryParse(Convert.ToString(value), out f)) 
       Console.WriteLine(value + " is a float"); 


      Console.ReadLine(); 
     } 
    } 
相關問題