Heim >Web-Frontend >js-Tutorial >Drei Methoden zum Konvertieren von Gleitkommazahlen in Ganzzahlen mithilfe von Javascript_Javascript-Kenntnissen

Drei Methoden zum Konvertieren von Gleitkommazahlen in Ganzzahlen mithilfe von Javascript_Javascript-Kenntnissen

WBOY
WBOYOriginal
2016-05-16 16:43:181261Durchsuche

Zusammenfassung

Mir fallen im Moment nur 3 Methoden ein. Wenn den Lesern andere nützliche Methoden einfallen, können Sie diese auch teilen

parseInt
Bit-Operator
Math.floor Math.ceil

Beschreibung

1. parseInt

1. Beispiel

parseInt("13nash");//13
parseInt("")// NaN
parseInt("0xA") //10(十六进制)
parseInt(" 13")//13
parseInt("070")//ES3为56(八进制) ES5为70
parseInt(070)//ES3和ES5都为56
parseInt(22.5)//22

2. Konvertierungsregeln:

(1). Gemäß Beispiel (1) analysiert parseInt, bis es keine Zahl mehr ist, und stoppt
(2). Gemäß Beispiel (2) ist parseInt beim Parsen einer leeren Zeichenfolge NaN, nicht 0
(3). Gemäß Beispiel (3) kann parseInt hexadezimale Zahlen in dezimale
umwandeln (4). Gemäß Beispiel (4) ignoriert parseInt Leerzeichen in Zeichenfolgen

3. Nachteile:

(1). Gemäß Beispiel (5) können wir erkennen, dass parseInt beim Konvertieren von Oktalarrays inkompatibel ist. ES3 behandelt 070 als Oktalwert, ES5 behandelt 070 jedoch als Dezimalwert.
(2). Gemäß den Beispielen (6) (7) können wir wissen, dass parseInt die Parameter zuerst in Zeichenfolgen umwandelt und sie dann in Ganzzahlen ausführt

4. Erläuterung: Warum geht es bei der Ausführung von (5) und (6) ausschließlich um die Umwandlung von 070 in eine Ganzzahl, die Ergebnisse sind jedoch unterschiedlich? Dies ist auch der zweite Punkt bei der Lösung von Mängeln.

Weil ich in der offiziellen Dokumentation gesehen habe, dass ein String, wenn er kein String ist, in einen solchen umgewandelt wird. Diese Passage. Das heißt, wenn der Parameter kein String ist, wird er zuerst in einen String und dann in eine Ganzzahl konvertiert. Beispielsweise konvertiert parseInt(070) in Beispiel (6) tatsächlich zuerst 070 „“ oder String(070), um zu erfahren, dass 070 in „56“ umgewandelt wird, da 070 eine Oktalzahl ist. Dann wird es zu parseInt("56") und die endgültige Ganzzahl ist 56. Unabhängig davon, ob Sie ES3 oder ES5 verwenden, sind es 56

2. Bit-Operatoren

1. Beispiel

console.log(0 | "123.45")//123
console.log(0 | 123.45)//123
console.log(0 ^ 123.45)//123
console.log(~~123.45)//123

2. Prinzip: JavaScript hat kein Konzept für Ganzzahlen und alle numerischen Typen sind Gleitkommazahlen mit doppelter Genauigkeit. Bei Verwendung bitweiser Operatoren werden die Operanden zunächst in Ganzzahlen umgewandelt, um Operationen zu erleichtern. Eine XOR-Verknüpfung von 0 mit anderen Werten oder eine bitweise ODER-Verknüpfung ändert den Operationswert

jedoch nicht

3. Math.floor und Math.ceil

1. Beispiel

console.log(Math.floor(2.3)//2
console.log(Math.floor(-2.3)//-3
console.log(Math.ceil(2.3)//3
console.log(Math.ceil(-2.3)//-2

2. Die beiden reichen nicht aus: Math.floor erhält die kleinste ganze Zahl, während Math.ceil die größte ganze Zahl erhält. Wenn wir also -2,3 aufrunden, erhalten wir -2, aber wenn wir Math.floor verwenden, erhalten wir -3. Und 2.3 verwendet Math.ceil, um 3 zu erhalten, aber was wir wollen, ist 2.

3. Lösung:

//自行定义一个函数
function getInt(val){
return val>0 ? Math.floor(val):Math.ceil(val);
}
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn