比較不同數量的類型(整型,浮點,雙,...)我有一個函數,有兩個參數,如果他們是平等的或虛假的,如果他們不返回true:在.NET
private bool isequal(object a, object b)
{
if (a != null)
return a.Equals(b);
if (b != null)
return b.Equals(a);
//if (a == null && b == null)
return true;
}
現在我想擴展這個功能。如果a和b是2個相同的數字,但是不同類型,它也應該返回true。
例如:
int a = 15;
double b = 15;
if (isequal(a,b)) //should be true; right now it's false
{ //...
}
我已經找到了類似的問題(有答案)best way to compare double and int但A和B可以是任何類型的數字或東西比其他數字的。我如何檢查a和b是否是數字?我希望有比檢查所有現有的數字類型的.NET(的Int32,Int16的,的Int64,UInt32的,雙,十進制,...)
// 更新一個更好的辦法:我設法寫一個方法,工作得很好。然而,可能會出現一些類型小數的問題(尚未測試)。但它適用於所有其他數字類型(包括大量的Int64或UInt64)。如果有人感興趣:code for number equality
我認爲你是與虎謀皮。如何比較Int64.MaxValue與float或double,並期望實現相等。沒有足夠的精度可用。 –
我從來沒有預料到這一點。 Int64.MaxValue和一些float值當然永遠不會相等。但我希望它能夠正確地工作於所有可能的組合(Int64.MaxValue!= Int64.MaxValue-1,其中之一) – Preli