对于浮点数,
n % 1 == 0通常是检查小数点后是否还有其他内容的方法。
public static void Main (string[] args){ decimal d = 3.1M; Console.WriteLine((d % 1) == 0); d = 3.0M; Console.WriteLine((d % 1) == 0);}
输出:
FalseTrue
更新: 如下面的@Adrian
Lopez所述,与较小的值进行比较
epsilon将丢弃浮点计算错误的计算。由于问题是关于
double值的,因此下面是一个更 浮点计算证明的
答案:
Math.Abs(d % 1) <= (Double.Epsilon * 100)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)