2017-04-10 1 views
0

나는 5 포인트가 정확히 같은 geojson 데이터를 가지고 있습니다.플로트의 마지막 자릿수 변경

30.9694313

어떻게 마지막 번호를 분리 할 랜덤 증가는 또는 그것이 30.9694314이나 30.9694312 중 하나에 착륙 감소?

나는 0.0000001을 더하거나 뺄 수 있다고 생각하지만, 동적 플로트 길이의 경우 어떻게 처리해야할까요?

+0

그래서 여기에서 .00000001을 더하거나 뺍니다. 너의 문제는 무엇인가? 너 무슨 짓을 한거야? – epascarello

+0

[ask]를 읽으십시오. 핵심 구절 : "검색 및 연구"및 "당신이 직접 해결하지 못하게하는 어려움을 설명하십시오." –

+0

질문이 수정되었습니다. 동적 플로트 길이에 대한 내용입니다. 사과. Eeesh. – andehlu

답변

1

이렇게하는 한 가지 방법은 float의 String 표현을 가져온 다음 마지막 숫자를 정수로 파싱하는 것입니다. 그런 다음 그것을 증가/감소시키고 문자열의 하위 문자열로 다시 추가하여 이전 마지막 숫자를 대체하고이를 부동으로 구문 분석 할 수 있습니다. 이 방법이 가장 효율적인 방법인지는 모르겠지만 내 머리 속으로 들어가는 것이 제일 처음입니다.

편집 : 몇 가지 방법은 (MDN에 대한 링크) 당신을 도울 당신의 도움들에 대한

Math.random()

Number.parseFloat(String)

+0

이렇게하면 str.charAt (str.length)를 사용하여 문자열의 마지막 자리를 얻을 수 있지만 이미 알고 있다는 것을 확신합니다 :-) – Driice

0

감사합니다. 이것이 내가 생각해내는 것입니다. 나는 더 깨끗한 방법이 있을지도 모른다고 상상한다. 그러나 이것은 나를 위해 일하는 것처럼 보인다. 저를 올바른 길로 인도 해 주셔서 감사합니다.

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); 

}