如何判断一个数是不是整数

可以这样操作:

int m = floor(sqrt(n) + 0.5); //对n开方并且四舍五入(floor()函数是向下取整)
if(m*m == n) printf("%d是整数", n);

其实我最起初的想法是这个

if(sqrt(n)==floor(sqrt(n)))	printf("%d\n",n);

以及

int m = floor(sqrt(n));
if(m*m == n) printf("%d是整数", n);

这两个方法实质是一样的,在理论上都可行,但是在经过大量计算后,是会产生误差的,比如,整数1会变为0.999999999,如果直接采取向下取整,0.999999999就会变成0而不是1 .故采用四舍五入的方法来减小这种误差。

发布了10 篇原创文章 · 获赞 9 · 访问量 2705

猜你喜欢

转载自blog.csdn.net/King_Louis_/article/details/104731256