【发布时间】:2011-05-03 21:32:07
【问题描述】:
我有一个 double 类型的变量,我想检查它是否为整数。
目前有
public bool CheckIfInteger(double number)
{
return number.ToString().Contains(".") == false;
}
有没有更好的办法?
更新:抱歉,我没有意识到可能造成混淆,整数是指整数的数学定义,即自然数加上非零自然数的负数。
【问题讨论】:
-
你的方式是有风险的:如果机器区域设置有“,”作为小数分隔符怎么办?看起来你可以从下面的答案中选择。 :)
-
您使用当前方法首先想到的是,它可能没有考虑到小数分隔符可能会因当前线程文化而异。如果您要从下面的答案中选择一种替代方案,请注意在给您结果之前将输入数字视为字符串的任何事情......特别是如果它不考虑除“。”之外的小数分隔符
-
@Shadow:您的情况可以通过
CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator解决。但是((decimal))Int32.MaxValue+1)呢?这是一个没有小数分隔符的小数 -
看到所有针对这样一个基本问题的创造性解决方案有点酷。干杯。
-
不要学究气,但是...... Double 永远不会是 Integer。 Double 的值很可能是整数。我认为您的意思是“如果 Double 具有整数值”?
标签: c# .net types integer double