If I need to, say, find the the integer part and the fractional part of a number within an asm.js module, how do I do it? None of the standard operators convert between intish and doubleish types; even Math.floor returns a double, and its result can't be coerced to an int.
var floor = stdlib.Math.floor;
function(n) {
n = +n;
var a = 0;
a = floor(n)|0; // fails: "Operands to bitwise ops must be intish"
var b = 0.0;
b = +(n-a); // would fail if piler got to here
return;
}
If I need to, say, find the the integer part and the fractional part of a number within an asm.js module, how do I do it? None of the standard operators convert between intish and doubleish types; even Math.floor returns a double, and its result can't be coerced to an int.
var floor = stdlib.Math.floor;
function(n) {
n = +n;
var a = 0;
a = floor(n)|0; // fails: "Operands to bitwise ops must be intish"
var b = 0.0;
b = +(n-a); // would fail if piler got to here
return;
}
Share
Improve this question
asked May 21, 2013 at 22:25
ZachBZachB
15.5k5 gold badges66 silver badges93 bronze badges
1 Answer
Reset to default 10Vyacheslav Egorov (twitter:@mraleph) says: use ~~
to coerce to an int. Special validation case: http://asmjs/spec/latest/#unaryexpression
a = ~~floor(n); // success!
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745177311a4615250.html
评论列表(0条)