Как сделать целочисленное округление до сотого места - PullRequest
0 голосов
/ 13 января 2012

В ActionScript 3 у меня есть пользователь, который вводит число в поле, и это поле должно быть для денежного значения.Как мне сделать так, чтобы, если по какой-то причине они написали, скажем, 20,956, он округлился бы до 20,96?

1 Ответ

4 голосов
/ 13 января 2012

Вы можете использовать toFixed(). Что-то вроде:

var cash:String = (Number("1.2365")).toFixed(2)

Это не упомянуто в документации, но я уверен, что оно округляется, а не полы.

Обратите внимание, что .toFixed() возвращает строку, если вам нужен более полный помощник, вы можете использовать что-то вроде следующего.

    public function rounder(num:Number, decimalPlaces:int, method:Function = null):Number {
        if(method == null) method = Math.round;
        var mul:Number = Math.pow(10,decimalPlaces);
        return method(num * mul)/mul;
    }

и вызовите его, используя:

rounder(1.245, 2); // returns 1.25  (it uses round by default)
rounder(1.245, 2, Math.floor); // returns 1.24
rounder(1.241, 2, Math.ceil); // returns 1.25

И на самом деле вы можете использовать отрицательные числа и для десятичных знаков

rounder(2123, -1, Math.ceil); // returns 2130
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...