2012-03-29 3 views
0

JQuery 자동 생성을 사용하고 있으며 기본적으로 lat_id 및 lng_id 문자열은.JQuery autogeocomplete set 문자열 길이

도트 다음에 6 자리가 넘지 않도록 설정해야합니다. 예를 들어

:

Before: 
-1.1501888001110125 
After 
-1.150188 

이없는 경우 가능한 또는인가, 그것은 둥근 방법은 무엇입니까?

+0

그 -1.150189 안? 또는 반올림을 원하지 않으십니까?지도상의 마커가 움직일 것입니다 (정확하지는 않음). – ManseUK

+0

아니요, 반올림하지 않으십시오. 단지 포인트를 남기고 여분의 숫자를 없애고 싶습니다. – Satch3000

답변

1

이 시도 :

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

(그 7 인해를 더한 6 자 ".")

Working example here

input 트리밍 :

$('#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

이 솔루션의 유일한 나쁜 점은 번호를 잘라서 반올림하지 않는다는 것입니다. 1.50188899999999999가있는 경우 1.501888이 아닌 1.501889가됩니다. 일부 시나리오에서는 일부 시나리오에서는이를 원하지 않습니다. –

+0

@ S.Visser는 OP 질문에 대한 코멘트를 봅니다. "반올림하지 않습니다"와 그 문자열이 숫자가 아니므로'substr'가 더 효과적입니다. – ManseUK

+0

죄송합니다. 의견을 보지 못했습니다. "이게 가능한가, 아니면 그렇지 않은가?"라는 그의 글에서 이것을 보았다. 그러나 그 옆에있는 검색을 통해 사람들에게 알리는 것이 좋습니다. Btw는 코드가 잘못되었다고 말할 수있는 방법이 아니 었습니다.) –

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)) 
​ 

출력 : http://jsfiddle.net/PfNgh/