gpt4 book ai didi

c# - 在 .NET 中比较不同的数字类型(int、float、double、...)

转载 作者:行者123 更新时间:2023-11-30 12:15:31 25 4
gpt4 key购买 nike

我有一个函数,它接受两个参数,如果它们相等则返回 true,否则返回 false:

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、Double、Decimal、...)更好的方法

//更新:我设法编写了一个运行良好的方法。但是,小数类型的数字可能存在一些问题(尚未测试)。但它适用于所有其他数字类型(包括大量的 Int64 或 UInt64)。如果有人感兴趣:code for number equality

最佳答案

您可以对 a 和 b 使用 Double.TryParse。它将处理 int、long 等。

private bool isequal(object a, object b)
{
if (a == null || b == null)
return (a == b);

double da, db;
if (Double.TryParse(a.ToString(), out da) && Double.TryParse(b.ToString(), out db))
return YourIsDoubleEqualEnough(da, db);

return false;
}

关于c# - 在 .NET 中比较不同的数字类型(int、float、double、...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com