我已經通過谷歌搜索(也許我看起來不夠努力),但我找不到如何將Math.sqrt變成int。Javascript:將Math.sqrt轉換爲int?
我想使用Math.sqrt 爲循環,我想我需要它作爲一個int,但我似乎無法弄清楚如何將結果轉換爲int。那我該怎麼做呢?
我試過類似Java的東西:
(int) Math.sqrt(num);
但沒有奏效。
感謝提前:)
我已經通過谷歌搜索(也許我看起來不夠努力),但我找不到如何將Math.sqrt變成int。Javascript:將Math.sqrt轉換爲int?
我想使用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
Math.floor將做到這一點。不過,你甚至有必要去一個整數。
Math.floor(Math.sqrt(num));
有人建議parseInt。這是從一個字符串到一個int,但是很容易將一個float轉換爲一個字符串。
parseInt(Math.sqrt(num)+"")
請記住,不管你做什麼,JavaScript總是使用浮動。沒有整數類型。
使用parseInt(Math.sqrt(num)+"")
比使用Math.round(Math.sqrt(num))
慢。我認爲這是因爲在第一個例子中,你正在創建字符串,解析整數值num
並四捨五入。在第二個例子中,你只需要int和round。
我知道這是一個老問題,但我想任何人都找到這個後來....
我不會重申其他的答案說什麼,但一個有趣的小竅門,你可以做的是:
Math.sqrt(2); //1.41......
~~Math.sqrt(2); //1
雙位負數將小數點後的任何東西都關掉。我被告知它速度稍快,但我並不完全相信。
編輯:作爲一個說明,這將向0圓。
編輯您的舊問題,無需重新張貼。 – 2009-02-01 05:57:14