私はmay pointsが全く同じであるgeojsonデータの束を持っています。浮動小数点の最後の桁を変更する
30.9694313
どのように私はそれが30.9694314 30.9694312かのどちらかに着陸最後の数とランダムインクリメントまたはデクリメント、それを分離するのでしょうか?
私は0.0000001を加算または減算することができますが、ダイナミックフロートの長さの場合にこれを処理する方法は?
私はmay pointsが全く同じであるgeojsonデータの束を持っています。浮動小数点の最後の桁を変更する
30.9694313
どのように私はそれが30.9694314 30.9694312かのどちらかに着陸最後の数とランダムインクリメントまたはデクリメント、それを分離するのでしょうか?
私は0.0000001を加算または減算することができますが、ダイナミックフロートの長さの場合にこれを処理する方法は?
これを行う1つの方法は、フロートの文字列表現を取得し、最後の数字を整数として解析することです。次に、増分/減分し、Stringの部分文字列に追加して最後の最後の数字を置き換えて、floatとして解析します。これが最も効率的な方法であるかどうかはわかりませんが、それは私の頭の中で最初に浮かぶことです。
編集:あなたの助けみんなのためにあなたを助けるためにいくつかの方法(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
[ask]をお読みください。重要なフレーズ:「検索と研究」と「あなたがそれを自分で解決することを妨げた困難を説明する」 –
質問が編集されました - その動的フロートの長さです。謝罪。 Eeesh。 – andehlu