我正在使用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