2016-11-23 16 views
0

これは私が念頭に置いて特別な例はないので、奇妙な問題かもしれません。私はJavaScriptを学ぼうとしていますが、いくつかの資料を見直しながら、1より小さい増減が可能かどうか疑問に思い始めました。 つまり、変数を "1"以外の値でインクリメントする必要がある状況があった場合。例えば。 1とは対照的に、変数iを0.5に増やします。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.5iをインクリメントし、新しい値を返します:

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 

代わりに、整数の増分を使用し、その後に値を拡張することができます所望の範囲:[?ループを使用してJavaScriptで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 
関連する問題