我有一堆geojson數據可能會完全相同。更改浮點數的最後一位
30.9694313
如何將我隔離的最後一個數字和隨機增加它或減少它降落在任何30.9694314 30.9694312還是?
我想我可以加或減0.0000001,但如何處理動態浮動長度的事件呢?
我有一堆geojson數據可能會完全相同。更改浮點數的最後一位
30.9694313
如何將我隔離的最後一個數字和隨機增加它或減少它降落在任何30.9694314 30.9694312還是?
我想我可以加或減0.0000001,但如何處理動態浮動長度的事件呢?
做到這一點的一種方法是獲取您的浮點數的字符串表示形式,然後將最後一個數字解析爲整數。然後,您可以遞增/遞減它,將它添加回您的字符串的子字符串以替換舊的最後一位數字,並將其解析爲浮點數。不知道這是否是最有效的方法,但這是第一個想到我的腦海。
編輯:一些方法來幫助你鏈接(MDN)
如果你這樣做,你可以通過使用str.charAt(str.length)得到字符串的最後一個數字,但我相信你已經知道:-) – Driice
感謝您的幫助球員。這是我想出的。我想可能有更清晰的方式,但這似乎對我有用。感謝您讓我走上正軌。
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。你有什麼問題?你嘗試了什麼? – epascarello
請閱讀[問]。重要短語:「搜索和研究」和「解釋......阻止你自己解決它的任何困難」。 –
問題已編輯 - 關於動態浮動長度。道歉。 Eeesh。 – andehlu