Possible Duplicate:
How to determine if a decimal/double is an integer?什么是一个很好的方法来检查一个double是否是C#中的整数?
我有一个double类型的变量,我想检查它是否是一个整数。
目前,我有
public bool CheckIfInteger(double number)
{
return number.ToString().Contains(".") == false;
}
有没有更好的办法?
更新:抱歉,我没有意识到混淆的可能性,整数我的意思是整数的数学定义,即自然数和非零自然数的负数。
您的方式是有风险的:如果机器区域设置具有“,”作为小数点分隔符?看起来你可以从下面的答案中选择。 :) – 2010-11-02 11:44:52
使用当前使用的方法时首先想到的是,它可能不会考虑到小数点分隔符可能会因当前线程文化的不同而不同。如果您要从下面的答案中选择其中一种方法,请注意在给出结果之前将输入数字视为字符串的任何内容......特别是如果它没有考虑除“。”之外的小数点分隔符。 – 2010-11-02 11:50:52
@Shadow:您可以使用'CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator'来改变您的情况。但是((十进制))Int32.MaxValue + 1)'?这是一个没有小数点的小数点 – abatishchev 2010-11-02 12:06:16