質問

私は、グーグルによる検索した(多分私は十分に懸命に見ていない)が、私はint型にMath.sqrtを有効にする方法を見つけることができませんでした。

私は<私>のためののforループMath.sqrtを使用したいと私はintとしてそれを必要とすると思いますが、私はint型に結果をキャストする方法を見つけ出すように見えることはできません。だから私はそれをどのように行うのですか?

私は、Javaに似た何かを試してみました。

(int) Math.sqrt(num);

しかし、それは動作しませんでした。

事前に感謝:)

役に立ちましたか?

解決

あなたの特定の丸めのニーズに応じてMath.roundMath.ceil、またはMath.floorを使用します。

"整数に恐らくMath.roundのいずれかを数字を丸め、Math.ceilとMath.floorが好ましく、32ビットもかもしれないビット演算は、後述する符号付き整数として表現することができる所望の結果のためにスーツ。 "

- http://www.jibbering.com/faq/faq_notes/type_convert .htmlを#tcNumberする

他のヒント

誰かがのparseIntを示唆しました。それはintに文字列からなりますが、それは文字列にfloatを有効にするのは簡単です。

parseInt(Math.sqrt(num)+"")

は関係なく、あなたは何をすべきか、JavaScriptは常に浮動小数点数を使用していないことを覚えておいてください。何の整数型ではありません。

Math.floorはそれを行います。あなたもかかわらず、整数に行く必要が疑います。

Math.floor(Math.sqrt(num));

parseInt(Math.sqrt(num)+"")を使用すると、Math.round(Math.sqrt(num))を使用するよりも遅くなります。私は、最初の例では、あなたが、文字列を作成numの整数値を解析し、それを丸めているので、それがあると思います。第二の例では、あなたはそれint型とラウンドを取るます。

タグ....私は、これは古い質問ですけど、私はこの後を見つける人のために把握します

私は他の回答が言うことを繰り返すことはありませんが、あなたが行うことができます楽しい小さなトリックがあります:

Math.sqrt(2); //1.41......
~~Math.sqrt(2); //1

ダブルビット単位の否定は、小数点以下何も落ちます。私はそれがわずかに速いです言われてきたが、私は完全に確信していない。

EDIT:ノートとして、これが0に向かって丸めます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top