私はグーグルで検索しましたが(多分私は十分によく見えませんでした)、Math.sqrtをintに変える方法を見つけることができませんでした。
forループにMath.sqrtを使用したいのですが、intとして必要だと思いますが、結果をintにキャストする方法がわからないようです。では、どうすればよいですか?
私はJavaに似たものを試しました:
(int) Math.sqrt(num);
しかし、それはうまくいきませんでした。
前もって感謝します :)
私はグーグルで検索しましたが(多分私は十分によく見えませんでした)、Math.sqrtをintに変える方法を見つけることができませんでした。
forループにMath.sqrtを使用したいのですが、intとして必要だと思いますが、結果をintにキャストする方法がわからないようです。では、どうすればよいですか?
私はJavaに似たものを試しました:
(int) Math.sqrt(num);
しかし、それはうまくいきませんでした。
前もって感謝します :)
、、または特定の丸めのニーズに応じて使用しますMath.round
。Math.ceil
Math.floor
「数値を整数に丸めるには、Math.round、Math.ceil、Math.floorのいずれかを使用することをお勧めします。また、32ビットの符号付き整数として表現できる望ましい結果を得るには、以下で説明するビット演算も適しています。」
-http ://www.jibbering.com/faq/faq_notes/type_convert.html#tcNumber
誰かがparseIntを提案しました。それは文字列から整数になりますが、floatを文字列に変えるのは簡単です。
parseInt(Math.sqrt(num)+"")
何をするにしても、JavaScriptは常にfloatを使用していることを忘れないでください。整数型はありません。
Math.floorがそれを行います。ただし、整数に移動する必要があることは間違いありません。
Math.floor(Math.sqrt(num));
を使用するparseInt(Math.sqrt(num)+"")
と、 を使用するよりも遅くなりMath.round(Math.sqrt(num))
ます。num
最初の例では、文字列を作成し、整数値を解析して丸めているためだと思います。2 番目の例では、単に int を取り、それを丸めます。
これは古い質問であることは知っていますが、後でこれを見つけた人のために考えます....
私は他の答えが言うことを繰り返しませんが、あなたができる楽しい小さなトリックは次のとおりです。
Math.sqrt(2); //1.41......
~~Math.sqrt(2); //1
二重のビットごとの負数は、小数点以下をすべて削除します。少し速いと言われましたが、完全には確信が持てません。
編集:注として、これは0に向かって丸められます。