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

可以这样操作:

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 .故采用四舍五入的方法来减小这种误差。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页