我正在使用JQuery自動完成,基本上lat_id和lng_id字符串太長了。JQuery autogeocomplete設置字符串長度
我需要設置它,所以它不會超過點後的6位數。
例如:
Before:
-1.1501888001110125
After
-1.150188
這是可能的,或者如果沒有,有沒有一個解決方法呢?
我正在使用JQuery自動完成,基本上lat_id和lng_id字符串太長了。JQuery autogeocomplete設置字符串長度
我需要設置它,所以它不會超過點後的6位數。
例如:
Before:
-1.1501888001110125
After
-1.150188
這是可能的,或者如果沒有,有沒有一個解決方法呢?
嘗試:
var mystring = "-1.1501888001110125";
var newstring = mystring.substr(0,(mystring.indexOf('.') + 7));
(其7因爲加上6個字符 「」)
修整的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)));
}
});
這個解決方案唯一不好的地方就是減少了數字而不是四捨五入。如果你有1.50188899999999999這將是1.501888,而不是1.501889如果你圍繞它會是什麼。在某些情況下,您希望在某些情況下您不需要。 – 2012-03-29 11:24:54
@ S.Visser看看OPs上的評論問題 - 「沒有四捨五入」,它的字符串不是數字,所以'substr'更有效 – ManseUK 2012-03-29 12:13:48
抱歉,沒有看到評論。只是在他的文章中看到了這個「這是可能的,或者如果不可行,有沒有辦法繞過它?」。但除此之外,對於通過搜索來到這裏的人來說,這是一件好事。順便說一句,這不是說你的代碼是壞的或某種方式;) – 2012-03-29 12:18:38
function roundNumber(num, dec) {
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}
alert(roundNumber(-1.32423423421421312, 6))
應該是不-1.150189?或者你不想四捨五入 - 而且你知道地圖上的標記會移動(即它不是那麼準確) – ManseUK 2012-03-29 10:34:11
不,不想繞它。只想在點數後取掉多餘的數字,只剩下6個。 – Satch3000 2012-03-29 10:41:01