首页 > 解决方案 > 制作类来封装 isLong/isDouble 函数

问题描述

我正在尝试创建一个包含 4 个函数的类:isLong、isDouble、stringToLong 和 stringToDouble。我试图在不使用 TryParse 函数的情况下做到这一点。理想情况下,此类将接收一个字符串并按相应的顺序返回适当的类型(bool、bool、long 和 double)。

例如,如果我输入数字 100000,它会为 isLong 返回 True (bool)。

下面是我如何执行 isLong 的示例,但我很难尝试对 isDouble 执行相同的操作以接收小数以及 stringToLong/stringToDouble。

public static bool isLong(string s)
    {
        bool ret = true;
        int i;
        s = s.Trim();
        if (s[0] == '-')
        {
            i = 1;
        }
        else
        {
            i = 0;
        }
        for (; (i < s.Length); i = i + 1)
        {
            ret = ret && ((s[i] >= '0') && (s[i] <= '9'));
        }
        return (ret);
    }

标签: c#

解决方案


您可以使用 MinValue 和 MaxValue 属性来检查数字类型,例如,您可以定义如下方法:

public bool IsLong(decimal value)
{
   return value >= long.MinValue && value <= long.MaxValue && value == (long)value;
}

推荐阅读