use*_*294 10 javascript integer numbers floor
在我之前的问题中接受的答案(在javascript中生成随机整数的最快方法是什么?),我想知道一个数字如何通过符号丢失其小数|
.
例如:
var x = 5.12042;
x = x|0;
Run Code Online (Sandbox Code Playgroud)
那个数字5到底是怎么回事?
更多例子:
console.log( 104.249834 | 0 ); //104
console.log( 9.999999 | 0 ); // 9
Run Code Online (Sandbox Code Playgroud)
Ham*_*ish 13
因为,根据ECMAScript规范,按位运算符运算符调用ToInt32要计算的每个表达式.
请参见11.10二进制位运算符:
生产
A : A @B,其中@是上述产品中的一个按位运算符,评估如下:
评估
A.打电话
GetValue(Result(1)).评估
B.打电话
GetValue(Result(3)).呼叫
ToInt32(Result(2)).呼叫
ToInt32(Result(4)).将按位运算符
@应用于Result(5)和Result(6).结果是带符号的32位整数.返回
Result(7).
按位运算符将其参数转换为整数(请参阅http://es5.github.com/#x9.5).我所知道的大多数语言都不支持这种类型的转换:
$ python -c "1.0|0"
Traceback (most recent call last):
File "", line 1, in
TypeError: unsupported operand type(s) for |: 'float' and 'int'
$ ruby -e '1.0|0'
-e:1:in `': undefined method `|' for 1.0:Float (NoMethodError)
$ echo "int main(){1.0|0;}" | gcc -xc -
: In function ‘main’:
:1: error: invalid operands to binary | (have ‘double’ and ‘int’)
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |