Javascript 更改浮点的最后一位
我有一堆geojson数据,其中可能的点是完全相同的 30.9694313 我将如何隔离最后一个数字,并在30.9694314或30.9694312上随机递增或递减它Javascript 更改浮点的最后一位,javascript,Javascript,我有一堆geojson数据,其中可能的点是完全相同的 30.9694313 我将如何隔离最后一个数字,并在30.9694314或30.9694312上随机递增或递减它 我想我可以加或减0.0000001,但是在动态浮点长度的情况下如何处理这个问题呢?一种方法是获取浮点的字符串表示形式,然后将最后一个数字解析为整数。然后,您可以递增/递减它,将它添加回字符串的子字符串以替换旧的最后一个数字,并将其作为浮点进行解析。我不确定这是否是最有效的方法,但这是我第一个想到的 编辑:帮助您的一些方法(指向MD
我想我可以加或减0.0000001,但是在动态浮点长度的情况下如何处理这个问题呢?一种方法是获取浮点的字符串表示形式,然后将最后一个数字解析为整数。然后,您可以递增/递减它,将它添加回字符串的子字符串以替换旧的最后一个数字,并将其作为浮点进行解析。我不确定这是否是最有效的方法,但这是我第一个想到的 编辑:帮助您的一些方法(指向MDN的链接)
谢谢你们的帮助。这就是我想到的。我想可能会有一个更干净的方法,但这似乎对我有用。谢谢你让我走上正轨
noiselocation('-30.12345');
function noiselocation(coord){
//num to string and strip special chars
var coordstr = coord.toString();
console.log('string: ' + coordstr);
//get length
var coordstrlength = coordstr.length-1;
console.log('length: ' + coordstrlength);
//get last char
var coordlastchar = coordstr.charAt(coordstrlength);
console.log('last char: ' + coordlastchar);
//turn back to number
coordlastnum = parseInt(coordlastchar);
console.log('last num: ' + coordlastnum);
//randomly increment up or down
var randswitch = Math.floor(Math.random() * 2) + 1;
if(randswitch == "1"){
coordlastnum++;
}else{
coordlastnum--;
}
console.log('last num after rand: ' + coordlastnum);
//replace last char on string
var newcoordstr = coordstr.slice(0, -1) + coordlastnum;
console.log('new string: ' + newcoordstr);
//turn string back to num
newcoordnum = parseFloat(newcoordstr);
console.log('new num: ' + newcoordstr);
}
因此,从中添加或减去.00000001。你有什么问题?你尝试了什么?请阅读。关键短语:“搜索、研究”和“解释……任何阻碍您自己解决问题的困难”。问题已编辑-关于动态浮动长度。道歉。你说的“动态浮动长度”是什么意思?您真的想翻转一点,而不是更改十进制表示法吗?将其转换为字符串,按十进制进行拆分,然后计算长度。如果这样做,您可以使用str.charAt(str.length)获得字符串的最后一位数字,但我相信您已经知道:-)