2012-01-12 4 views
0

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

+1

тааак простой Math.Round (NumberToRound * 100)/100 –

ответ

4

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

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

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

Обратите внимание, что .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 

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

rounder(2123, -1, Math.ceil); // returns 2130 
Смежные вопросы