Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查字符串变量的值是否为double_C#_String_Double_Real Number - Fatal编程技术网

C# 如何检查字符串变量的值是否为double

C# 如何检查字符串变量的值是否为double,c#,string,double,real-number,C#,String,Double,Real Number,我试图检查字符串变量的值是否为double 我已经看到了这个现存的问题()和它的答案,它们很棒,但我有一个不同的问题 public static bool IsDouble(string ValueToTest) { double Test; bool OutPut; OutPut = double.TryParse(ValueToTest, out Test); return OutPut

我试图检查字符串变量的值是否为double

我已经看到了这个现存的问题()和它的答案,它们很棒,但我有一个不同的问题

public static bool IsDouble(string ValueToTest) 
    {
            double Test;
            bool OutPut;
            OutPut = double.TryParse(ValueToTest, out Test);
            return OutPut;
    }
根据上面的代码,当ValueToTest为“-∞" 我在变量测试中得到的输出是“-Infinity”,该方法返回true

当ValueToTest为“NaN”时,我得到的输出为“NaN”

他们都是吗?”-∞和“NaN”在C#中的双值


还有一种方法可以只检查实数()并排除无穷大和NaN吗?

是的,它们是双精度的有效值:请参阅

只需更新您的方法,以包括对
NaN
Infinity
的检查:

public static bool IsDoubleRealNumber(string valueToTest)
{
    if (double.TryParse(valueToTest, out double d) && !Double.IsNaN(d) && !Double.IsInfinity(d))
    {
        return true;
    }

    return false;
}

是,它们是双精度的有效值:请参阅

只需更新您的方法,以包括对
NaN
Infinity
的检查:

public static bool IsDoubleRealNumber(string valueToTest)
{
    if (double.TryParse(valueToTest, out double d) && !Double.IsNaN(d) && !Double.IsInfinity(d))
    {
        return true;
    }

    return false;
}
“NaN”
“-∞“
是可解析为
double
的有效字符串。因此,如果不希望将其视为有效的
double
值,则需要将其过滤掉:

public static bool IsValidDouble(string ValueToTest)
{
    return double.TryParse(ValueToTest, out double d) && 
           !(double.IsNaN(d) || double.IsInfinity(d));
}
“NaN”
“-∞“
是可解析为
double
的有效字符串。因此,如果不希望将其视为有效的
double
值,则需要将其过滤掉:

public static bool IsValidDouble(string ValueToTest)
{
    return double.TryParse(ValueToTest, out double d) && 
           !(double.IsNaN(d) || double.IsInfinity(d));
}

检查这双有无限和inNan检查,希望这会得到

 if (Double.IsInfinity(SampleVar))
{
  //Put your  logic here.
}
if (Double.IsNaN(SampleVar))
{
  //Put your  logic here.
}

检查这双有无限和inNan检查,希望这会得到

 if (Double.IsInfinity(SampleVar))
{
  //Put your  logic here.
}
if (Double.IsNaN(SampleVar))
{
  //Put your  logic here.
}

是的,它们是……请看。@PatrickHofman谢谢。那么我如何才能只测试实数?只需检查双精度是否为两个(NaN或无穷大)中的任何一个。然后返回false。是的,它们是……请看。@PatrickHofman谢谢。那么我如何只测试实数?只需检查双精度是否为两个(NaN或无穷大)中的任何一个。然后返回false。