2011-12-20 7 views
5

を説明し、私ははMath.floor(Math.random())

$('a.random-color').hover(function() { //mouseover 
    var col = 'rgb(' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ',' + (Math.floor(Math.random() * 256)) + ')'; 
    $(this).animate({ 
     'color': col, 
     'paddingLeft': '20px' 
    },1000); 
    },function() { //mouseout 
    $(this).animate({ 
     'color': original, 
     'paddingLeft': '0' 
    },500); 
    }); 
}); 

以下のような多くのMath.floor()を使用して場所やMath.random()

を見たことがありますか?

答えて

10

Math.randomは、0以上(1を含まない)の浮動小数点数を与えます。

これに256を掛ければ、0以上256以下の数値が得られますが、浮動小数点のままです。

この番号のフロアをとると、の整数は、0から255(両方を含む)の範囲でになります。

rgb(72,25,183)のようなRGB値を作成する必要がある0から255までの整数です。

1

Math.floorは整数を返し、小数点を削除します。

Math.randomは0と1の間の数を返すので、あなたがそれ以外のRGB値は動作しません小数を取り除くために床を使用したい理由を256ザッツに乗じたときに小数点以下の数字を生成します。

1

Math.floor()は、Numberの小数部分を削除します。それはMath.ceil()の反対です。

逆ビット単位の演算子(~~)をMath.floor()と同じになるように2倍にすることもできます(ほとんどの場合、floor()の方が読みやすくなります)。

~~(Math.random() * 256) 
2

これはランダムな色が所望されると思われる - )0〜255

Math.random()間のランダムな各成分を有するものは、0,1 [上で乱数を返す(すなわち、それは正確にゼロまたはまでであり得ます1つは含まない)。

ランダム値に256を掛けると、[0,256]の範囲の乱数が得られます(つまり、255.99でも256になることはありません)。ほぼそこにあるが、それほどではない。

Math.floor()は、整数を最も近い整数に丸めて、結果を[0,255]で整数にします。

1

Math.randomは0と1の間の値を返します。これを256に掛けて、0から256までのfloat値を返します。math.floorはそこから小数点を省略します。

0

~~Numberは、正の数値の場合はMath.floor()です。負の数の場合はMath.ceil()です。あなたが使用することができ、負の数値の場合

Math.floor(x) == ~~(x) 

Math.round(x) == ~~(x + 0.5) 

Math.ceil(x) == ~~(x + 1) 

:あなたが使用することができ、正の数については

Math.ceil(x) == ~~(x) 

Math.round(x) == ~~(x - 0.5) 

Math.floor(x) == ~~(x - 1) 
関連する問題