Просмотр полной версии : float truncate
Вот тут (http://www.flasher.ru/forum/showthread.php?t=36257&highlight=trunc) внятно показано как транкейтить флоаты. Но! Ежели мы подадим на вход число формата 45.1004, то число обрежется до десятков, вместо сотен после запятой. Типа такого:
trace('GOOD > ' + Math.round(45.1234*100)/100);
trace('BAD > ' + Math.round(45.1004*100)/100);
Вопрос: как забарывать??
Thanks
Ни как. Number всегда будет удалять весящие нули.
висящие..
А делать-то чего? В Стринг перегонять и ручками приписывать нолик?
Ужас.
Как бы нам тогда ловчее сосчитать количество знаков после запятой? Соответственно, по результатам будет переводить в Стринг...
/**
* Метод, округляет число до ближайщего указанного в параметре degree разряда.
*
* @param num Округляемое число.
* @param degree Количество знаков после запятой.
* @return Округленное число (String).
*/
function round (num:Number, degree:Number):String {
var exponent:Number;
var str:String;
degree = Math.floor (degree);
if (degree == undefined || degree < 1) {
str = String (Math.round (num));
} else {
str = String (Math.round (num * Math.pow (10, degree)));
var a:String = str.substr (0, str.length - degree);
var b:String = str.substr (-degree, degree);
str = a + "." + b;
}
return str;
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.