Wie mache ich eine ganzzahlige Division in Javascript (Divisionsantwort in int not float erhalten)? [duplicate]

Lesezeit: 3 Minuten

Benutzer-Avatar
Nakib

Gibt es eine Funktion in Javascript, mit der Sie eine ganzzahlige Division durchführen können? Ich meine, die Divisionsantwort in int und nicht in Gleitkommazahlen zu erhalten.

var x = 455/10;
// Now x is 45.5
// Expected x to be 45

Aber ich möchte, dass x 45 ist. Ich versuche, die letzte Ziffer aus der Zahl zu eliminieren.

  • Haben Sie parseInt oder Math.floor ausprobiert?

    – N.G.

    21. September 2013 um 1:55 Uhr


  • @SB wie kann ich parseInt für dieses Problem verwenden.

    – Nakib

    21. September 2013 um 1:58 Uhr

  • @Nakib, parseInt(455/10);

    – Smer

    21. September 2013 um 2:00 Uhr

  • Nakib – du könntest es versuchen parseInt(x)

    – N.G.

    21. September 2013 um 2:00 Uhr

  • Der beste Weg wäre jetzt: var x = Math.trunc(455/10);

    – Stan Tatarnykow

    21. Mai 2016 um 19:10 Uhr

Benutzer-Avatar
Neeraj

var answer = Math.floor(x)

Ich hoffe aufrichtig, dass dies zukünftigen Suchenden beim Googeln nach dieser häufig gestellten Frage helfen wird.

  • Danke, ich habe es gegoogelt, konnte es aber nicht finden, trotzdem danke 🙂

    – Nakib

    21. September 2013 um 2:10 Uhr

  • Ich finde es ironisch, dass dies die Top-Antwort in meiner Google-Suche ist, wie dieses Problem gelöst werden kann.

    – Shaun Krüger

    19. Januar 2015 um 16:57 Uhr

  • Ich finde, dass diese Antwort sogar nicht immer richtig ist. Wenn das Ergebnis eine negative Zahl ist, Math.floor() gibt falsches Ergebnis zurück. Sogar Google wird eine nicht-genug-richtige Antwort zurückgeben. Hier: stackoverflow.com/questions/4228356/…

    – Hann

    10. April 2015 um 9:05 Uhr


  • Benutzung von Math.floor() hier ist nur für den Fall, dass die angegebene Zahl positiv ist. Schauen Sie sich dies an, um weitere Erklärungen zu erhalten. Normalerweise parseInt() ist eine bessere Wahl, um einen ganzzahligen Teil einer Zahl oder eines Strings zu erhalten.

    – tnga

    4. April 2016 um 9:32 Uhr


  • Math.trunc() adressiert das Problem mit negativen Werten. Tatsächlich ist trunc genau das, was Sie brauchen, wenn Sie nur den Dezimalteil entfernen möchten. stackoverflow.com/a/22307150/5876282

    – B Karl H

    16. Oktober 2019 um 12:50 Uhr

var x = parseInt(455/10);

Die Funktion parseInt() parst einen String und gibt eine ganze Zahl zurück.

Der Radix-Parameter wird verwendet, um anzugeben, welches Zahlensystem verwendet werden soll, z. B. gibt ein Radix von 16 (hexadezimal) an, dass die Zahl in der Zeichenfolge von einer Hexadezimalzahl in eine Dezimalzahl geparst werden soll.

Wenn der Radix-Parameter weggelassen wird, geht JavaScript von Folgendem aus:

If the string begins with "0x", the radix is 16 (hexadecimal)
If the string begins with "0", the radix is 8 (octal). This feature is deprecated
If the string begins with any other value, the radix is 10 (decimal)

  • Dies ist ineffizient, weil es implizit ist number.toString() Anruf, gefolgt von a parse das ist relativ teuer im Vergleich zu Math.floor. Das ist nicht gewährleistet parseInt akzeptiert a number Streit.

    – Dai

    17. September 2017 um 0:24 Uhr


  • Dies emuliert jedoch das Verhalten von python3: math.inf // 7 == nan => parseInt(Infinity / 7) == NaN

    – jneuendorf

    25. Januar 2020 um 2:22 Uhr

  • Emulieren intdiv() von PHP könnte mit etwas wie dem Folgenden ohne seltsame Gleitkomma-Mathematik oder andere Fußwaffen gemacht werden. const intDiv = (a, b) => (a - a % b) / b;

    – uttaa

    19. März um 15:03 Uhr

1283170cookie-checkWie mache ich eine ganzzahlige Division in Javascript (Divisionsantwort in int not float erhalten)? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy