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类型。