2016-11-23 1 views
0

구체적인 예를 염두에 두지 않은 이상한 질문 일 수 있습니다. 나는 JavaScript를 배우려고 노력하는 중이며 일부 자료를 검토하는 동안 1보다 작게 증가/감소 할 수 있는지 궁금해지기 시작했습니다. 즉, 변수를 "1"이외의 값으로 증가해야하는 경우가 있습니다. 예 : 변수 i를 0.5로 1을 반대로 늘림 for (var i = 0, i < 10.5, i++/2) {... 내가 말했듯이, 나는 이것을 수행 할 필요가있는 구체적인 예나 이유가 없습니다. 나는 단지 궁금하다.JavaScript : 사전 및 접미사 증가/감소 나누기

  1. JavaScript 내에서 유효합니까?
  2. 실제 시나리오에서 이러한 문제가 발생할 수 있습니까?
  3. 그렇다면이 방법이 올바른지 아니면 소수점 이하로 증가/감소 할 수있는 다른 방법이 더 좋습니까?

미리 답변 해 주셔서 감사합니다.

하지 문제와 같은 문제는 How to increment number by 0.01 in javascript using a loop?

+0

가능한 복제 (http://stackoverflow.com/questions/19290628/how-to-increment-number-by- 0-01-in-javascript-using-a-loop) – Mahi

답변

0

i++/2에서 경험하는 것은 그러나 그것은 당신이 무엇을 기대하지 않을 것이다, 유효한 구문입니다.

대신 표현 i += 0.50.5에 의해 i을 증가시키고 새 값을 반환합니다

var i = 1 
 
var x = (i += 0.5) 
 

 
console.log(i) // 1.5 
 
console.log(x) // 1.5

+=addition assignment operator라고합니다. 이 표현식은 변경 전 값인 i이 아닌 증가 된 값을 리턴합니다. 즉, ++i과 유사하게 동작하고 i++이 아닌 동작을합니다. 티모의 대답에 추가하려면

+0

Timo! 감사합니다. 더하기 대입 연산자'+ ='를 보자 마자 나는 당신이 말한 것을 알고있었습니다. 그것은 내가 쓴 것과 쓴 것을 보는 것이 훨씬 의미가 있습니다. 또한 증분 시점에 대한 설명을 주셔서 감사합니다. '++ i' 대'i ++'. 나는 여전히 할당 담당자에게 익숙하지 않다. 나는 그들을 이해하지만, 나는 그들에 대해 잊어 버리고 내가 그것을 볼 때 나는 멈추고 그들이 어떻게 작동하는지 기억해야한다. –

0

, 나는 그것을 반올림 오류가 발생할 수 있기 때문에, 루프에서 소수 단위를 사용하는 것이 좋습니다 않을 것이다 대신 당신이 정수 단위로 사용할 수 있습니다

for (var i = 0; i <= 1; i += 0.1) { 
    console.log(i); 
} 

// 0 
// 0.1 
// 0.2 
// 0.30000000000000004 
// 0.4 
// 0.5 
// 0.6 
// 0.7 
// 0.7999999999999999 
// 0.8999999999999999 
// 0.9999999999999999 

다음에 값을 확장 원하는 범위 [? 루프를 이용하여 자바 스크립트 0.01 번호를 증가시키는 방법]

for (var i = 0; i <= 10; i++) { 
    console.log(i/10); 
} 

// 0 
// 0.1 
// 0.2 
// 0.3 
// 0.4 
// 0.5 
// 0.6 
// 0.7 
// 0.8 
// 0.9 
// 1