Frage

Ich habe bei Google gesucht (vielleicht habe ich nicht genau genug gesucht), aber ich konnte nicht finden, wie ich Math.sqrt in ein int umwandeln kann.

Ich möchte Math.sqrt für a verwenden für Schleife und ich schätze, ich brauche es als int, aber ich kann anscheinend nicht herausfinden, wie ich das Ergebnis in ein int umwandeln soll.Wie mache ich das?

Ich habe etwas Ähnliches wie Java versucht:

(int) Math.sqrt(num);

Aber es hat nicht funktioniert.

Dank im Voraus :)

War es hilfreich?

Lösung

Verwenden Math.round, Math.ceil, oder Math.floor Abhängig von Ihren spezifischen Rundungsanforderungen.

„Zum Runden von Zahlen auf ganze Zahlen sind Math.round, Math.ceil und Math.floor vorzuziehen, und für ein gewünschtes Ergebnis, das als 32-Bit-Ganzzahl mit Vorzeichen ausgedrückt werden kann, könnte auch die unten beschriebene bitweise Operation geeignet sein.“

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

Andere Tipps

Jemand schlug vor, parseInt. Das geht aus einem String in einem int, aber es ist leicht, einen Schwimmer in einen String zu machen.

parseInt(Math.sqrt(num)+"")
Denken Sie daran,

, dass egal, was Sie tun, JavaScript ist immer Floats mit. Es gibt keinen Integer-Typen.

Math.floor wird es tun. Zweifel müssen Sie auch auf eine ganze Zahl gehen, though.

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

parseInt(Math.sqrt(num)+"") Verwendung langsamer als Math.round(Math.sqrt(num)) verwenden. Ich denke, es liegt daran, dass in erstem Beispiel Sie Zeichenfolge erstellen, ganzzahligen Wert von num Parsen und Rundung es. in zweiten Beispiel nehmen Sie nur int und um sie herum.

Ich weiß, das eine alte Frage, aber ich meine, für alle, dies später zu finden ....

Ich werde nicht wiederholen, was die anderen Antworten sagen, aber ein wenig Spaß Trick, den Sie tun können, ist:

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

die doppelte bitweise negativ fällt etwas hinter dem Komma ab. i gesagt wurde, es ist etwas schneller, aber ich bin nicht ganz überzeugt.

EDIT:. Als Notiz dies zu 0 runden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top