2016-08-28 5 views
2

数字が整数か正方形かどうかを確認しようとしています。私は2つの可能な方法を知っている。どのアプローチがより良いかを知りたいだけです。番号が整数であるかどうかをチェックする方が良いでしょうか?


  1. if (Math.floor(Math.sqrt(number)) == Math.sqrt(number))

  2. if (Math.sqrt(number) % 1 == 0)

+1

平方根が整数かどうかをテストしようとしていますか? –

+0

はい!私はそれをする方法を知っていますどのアプローチが最高であるかわからない –

+0

私はそれらの2つのどちらもしません。私は 'Math.floor(Math.sqrt(n))'の結果をlong型にキャストし、その数の2乗が元の数と同じかどうかをテストします。 –

答えて

1

あなたはこのようにそれを行うことができます。

double result = Math.sqrt(number); 
if (result == (int)result){ 
    // is integer 
} 

迅速かつ簡単。

+0

浮動小数点の不正確さのため浮動小数点の比較が保証されないため、常に動作するかどうかはわかりません。 – lionscribe

関連する問題