2012-03-29 19 views
0

JQueryのオートコンプリートを使用していますが、基本的にはlat_idとlng_idの文字列が長すぎます。JQueryのオートコンプリートセットの文字列の長さ

ドットの後に6桁以内になるように設定する必要があります。例えば

Before: 
-1.1501888001110125 
After 
-1.150188 

が、このことは可能ですかそうでなければ、ラウンド方法はありますか?

+0

その-1.150189ではないでしょうか?またはあなたは丸めをしたくありません - あなたは地図上のマーカーが移動することを知っています(正確ではない) – ManseUK

+0

いいえ、それを丸めたくありません。ちょうど6を残すためにポイントの後に余分な数字を離したい。 – 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となります.1501888ではなく、1.501889となります。いくつかのシナリオでは、そうしたくないシナリオがいくつかあります。 –

+0

@ S.VisserはOPの質問のコメントを見ます - "丸めなし"とその文字列ではないので、 "substr"がより効果的です – ManseUK

+0

申し訳ありませんが、コメントは見ませんでした。彼のポストでこれを見ただけです "これが可能かどうか、そうではない場合、そこには道があるのですか?"しかしそれの横には、検索でここに来る人々に気づくのは良いことです。あなたのコードが悪いとか言っているのではありませんでしたか?) –

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/