数が整数でない場合はどのように伝えるために

あなたはこれを行うことができます:

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);

これらの2つの方法は、理論的には可能同じ本質であるが、直接切り捨て取った場合、エラーが発生した計算の多数の後、例えば、1 0.999999999の整数となり、それは0.999999999となります0ではなく、したがって1、丸め誤差を低減するために、この方法を使用して。

公開された10元の記事 ウォンの賞賛9 ビュー2705

おすすめ

転載: blog.csdn.net/King_Louis_/article/details/104731256