Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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# 如何检查我的双变量是否为整数?_C#_Asp.net - Fatal编程技术网

C# 如何检查我的双变量是否为整数?

C# 如何检查我的双变量是否为整数?,c#,asp.net,C#,Asp.net,我有一个变量来自: double result = myList.Count / mySeptum; 我想做以下工作: if( result == int ) { //Do Something... } else{ //Do another thing... } 我该怎么做 我也试过这个,但没用: if ( result%10 == 0 ){ ... } 例如: private void button2_Click(object sender, EventArgs

我有一个变量来自:

double result = myList.Count / mySeptum;
我想做以下工作:

if( result == int ) {
      //Do Something...
} 
else{
      //Do another thing...
}
我该怎么做

我也试过这个,但没用:

if ( result%10 == 0 ){
...
}
例如:

private void button2_Click(object sender, EventArgs e)
{
    int r = 10;
    int l = 2;
    double d = r / l;

    if (d % 10 == 0)
    {
        Console.WriteLine("INTEGER");
    }
    else
    {
        Console.WriteLine("DOUBLE");
    }
}
例如:

double d = 1.0;
bool isInt = d == (int)d;
模:

double d = 1.0;
bool isInt = d % 1 == 0;
例如:

double d = 1.0;
bool isInt = d == (int)d;
模:

double d = 1.0;
bool isInt = d % 1 == 0;

一般来说,计算机上的浮点数不能代表每个实数,只能代表一些离散值。因此,仅对少数整数,双精度在数学上可能与整数值相同。对于大多数整数,最接近的double将关闭一小部分。因此,如果您正在寻找精确匹配,这将不起作用

但是,您可以将double转换为整数,检查double与整数之间的差值是否足够小:

double d = 1.5;
int i = (int) d;

double diff = d - i;

if (diff < 1.0e-6)
{
     std::cout << "number is close to integer" << std::endl;
}

一般来说,计算机上的浮点数不能代表每个实数,只能代表一些离散值。因此,仅对少数整数,双精度在数学上可能与整数值相同。对于大多数整数,最接近的double将关闭一小部分。因此,如果您正在寻找精确匹配,这将不起作用

但是,您可以将double转换为整数,检查double与整数之间的差值是否足够小:

double d = 1.5;
int i = (int) d;

double diff = d - i;

if (diff < 1.0e-6)
{
     std::cout << "number is close to integer" << std::endl;
}
如何检查我的双变量是否为整数

从C的角度来看,post最初被标记为: 我确信C有等价的函数

要确定double是否为整数,请使用modf返回小数部分

#include <math.h>

double x = ....;

double ipart;
if (isfinite(x) && modf(x, &ipart) == 0.0) {
  // value is a whole number
  ....
为了检查更广泛的整数类型,我们需要一些技巧,以确保在形成限制时不会出现舍入错误。代码利用了INT…\u MAX

如何检查我的双变量是否为整数

从C的角度来看,post最初被标记为: 我确信C有等价的函数

要确定double是否为整数,请使用modf返回小数部分

#include <math.h>

double x = ....;

double ipart;
if (isfinite(x) && modf(x, &ipart) == 0.0) {
  // value is a whole number
  ....
为了检查更广泛的整数类型,我们需要一些技巧,以确保在形成限制时不会出现舍入错误。代码利用了INT…\u MAX

尝试使用typeOf:

if (myInt.GetType() == typeof(int))
尝试使用typeOf:

if (myInt.GetType() == typeof(int))

因为5%10是5,如果它没有小数=>它是一个整数,则不可能是5的重复。您的测试将检查最后一个数字是否为零。如果R%L==0,你可以试试看:你认为1.0E100是整数吗?请注意,1e100==10…0 100零超出int.maxValues,因为5%10是5的不可能重复,如果它没有小数=>它是一个整数。您的测试将检查最后一个数字是否为零。如果R%L==0,你可以试试看:你认为1.0E100是整数吗?请注意,1e100==10…0 100零超出int.maxValues如果是双变量,则永远不会具有int类型。如果是双变量,则永远不会具有int类型。