1. не понятна проблема. у меня работает numpad
2.

Код:
num = 0.123453;
floor2 = function (num, r) {
var degree = Math.max (1, Math.pow (10, r));
return Math.floor (num * degree) / degree;
};
round2 = function (num, r) {
var degree = Math.max (1, Math.pow (10, r));
return Math.round (num * degree) / degree;
};
ceil2 = function (num, r) {
var degree = Math.max (1, Math.pow (10, r));
return Math.ceil (num * degree) / degree;
};
for (i = -1; i < 8; i++) {
trace ("знаков после запятой : " + i);
trace (floor2 (num, i));
trace (round2 (num, i));
trace (ceil2 (num, i));
trace ("");
}