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