2012-03-29 16 views
0

Ich benutze JQuery autogeocomplete und im Grunde die lat_id und die Lng_id Strings sind zu lang nach dem.JQuery Autogeocomplete Set String Länge

Ich muss es so einstellen, dass es nicht mehr als 6 Ziffern nach dem Punkt ist.

Zum Beispiel:

Before: 
-1.1501888001110125 
After 
-1.150188 

Ist das möglich oder wenn nicht, ist es eine Möglichkeit, um ihn herum?

+0

sollte das nicht -1,150189 sein? oder willst du nicht rund werden - und du weißt, dass sich der Marker auf der Karte verschieben wird (dh er ist nicht so genau) – ManseUK

+0

Nein, ich möchte ihn nicht runden. Will nur die zusätzlichen Ziffern nach den Punkten abziehen, um nur 6 zu verlassen. – Satch3000

Antwort

1

versuchen, dies:

var mystring = "-1.1501888001110125"; 
var newstring = mystring.substr(0,(mystring.indexOf('.') + 7)); 

(seine 7 aufgrund plus 6 Zeichen "")

Working example here

eine input Besatz:

$('#inputid').change(function() { 
    var $this = $(this); 
    var $thisval = $this.val(); 
    if ($thisval.indexOf('.') > 0 && $thisval.length > 7) { 
     $this.val($thisval.substr(0, ($thisval.indexOf('.') + 7))); 
    } 
});​ 

Working example here

+0

Die einzige schlechte Sache in dieser Lösung ist, dass Sie die Zahl schneiden und nicht runden. Wenn Sie 1.50188899999999999 haben, wird es 1.501888 sein und nicht 1.501889, was es wäre, wenn Sie es runden. In manchen Szenarien möchten Sie das in manchen Fällen nicht. –

+0

@ S.Visser Blick auf die Kommentare zur OPs Frage - "keine Rundung" und es ist eine Zeichenfolge keine Nummer, so 'substr 'ist effektiver – ManseUK

+0

Sorry, habe nicht die Kommentare gesehen. habe das gerade in seinem Beitrag gesehen "Ist das möglich oder wenn nicht, gibt es einen Weg darum?". Aber abgesehen davon ist es eine gute Sache für Leute, die hier durch die Suche kommen. Übrigens war es keine Möglichkeit zu sagen, dass dein Code schlecht oder so ist;) –

1
function roundNumber(num, dec) { 
    var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec); 
    return result; 
} 

alert(​roundNumber(-1.32423423421421312​, 6)) 
​ 

Output: http://jsfiddle.net/PfNgh/