2017-08-22 1 views
-2

Ich habe eine Zeichenfolge wie dieseWie Zeichenfolge nach festen Charakter entfernen

str[0] = "99.1234567" I wnat alle charcter nach 3 Nachkommastellen zu entfernen.

Means

str[0] = "99.123"

Wie diese Dezimalzahl nach drei entfernen. Auch werde ich manchmal nur zwei Dezimalstellen wie 11.36 in diesem Fall ich möchte ignoriert werden.

Antwort

4

Finden Sie einfach den Index des Zeitraums, und verwenden Sie substr, um den Teil der gewünschten Zeichenfolge zu erhalten.

str[0].substr(0, str[0].indexOf(".")+4); 

es OK ist, wenn die Zeichenfolge kürzer als die Länge in substr angegeben ist.

+0

Beachten Sie, dass dies Ihr Ergebnis ohne Warnung verfälschen könnte, wenn Ihre Eingabezeichenfolge mehr als einen Punkt enthält! –

3

Sie können dies Number.toFixed() mit tun, aber zuerst müssen Sie die Zeichenfolge Anzahl ot konvertieren:

var str = "99.1234567" 
 

 
console.log(Number(str).toFixed(3))

3

Eine Möglichkeit, dies zu tun:

parseFloat("99.1234567").toFixed(3) // "99.123" 
+0

Denken Sie daran, dass im Fall von "99.9999" wird dies aufrunden, was zu "100.000" –

+0

Wird es ?? Verdammt Javascript –

+0

yep;) Es ist so hinterhältig. –

2

Wenn Zeichenfolge :

str[0] = "99.1234567"; 
parseFloat(str[0]).toFixed(3); 
console.log(str[0]); //"99.123" 

      Or 

Math.round(str[0] * 1000)/1000; 
Verwandte Themen