Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   округление до трех знаков после запятой (http://www.flasher.ru/forum/showthread.php?t=210880)

Кот Баюн 19.05.2015 19:50

округление до трех знаков после запятой
 
Добрый вечер!
Я сто лет уже не занимался AS, и почти все забыл)))
Напомните кто-нибудь, люди, как округлять значение переменной до трех знаков после запятой?
То есть вместо 1,234345435345 получить 1,234
Помню, что это как-то делалось через math, но подробности забыл.

Переменная уже есть, скажем, она называется _root.a, и у нее огромное-преогромное значение после запятой (с периодом)
Как ее прямо тут и на месте округлить?

samana 19.05.2015 20:20

Не помню как это делалось на as2, но в as3 это делалось так:
Код AS3:

_root.a = Number(_root.a.toFixed(3));

Может ничего и не изменилось...

Кот Баюн 19.05.2015 20:23

на ас2 нельзя.
не знает toFixed

samana 19.05.2015 20:30

Вот ещё советуют такое округление:
Код AS1/AS2:

Math.round(number * factor)/factor;

Где number - число которое нужно округлить.
А factor - число 10,100,1000,10000 и т.д. Сколько нулей после единицы, столько знаков после запятой и останется.

Вот здесь есть ещё вариант интересный http://stackoverflow.com/questions/6...n-actionscript

Кот Баюн 19.05.2015 21:38

ну про это я знаю.
а как это присвоить нашей переменной?
то есть надо, чтобы уже имеющееся в ней значение округлилось

caseyryan 19.05.2015 21:50

рассчитать с использованием промежуточной переменной, а потом ее значение присвоить основной

samana 19.05.2015 21:51

Код AS1/AS2:

function toFixed (number:Number, precision:int) :Number {
 precision = Math.pow(10, precision);
 return Math.round(number * precision)/precision;
}
 
_root.a  = 420.4515751378;
_root.a = toFixed(_root.a, 3);
trace(_root.a); // 420.451


Кот Баюн 19.05.2015 22:32

сейчас проверю
а он округляет ровно или с плюсом?
то есть например 1.56399999999998 будет округлять до 1.564 ?

samana 19.05.2015 22:34

Я не знаю, проверьте.

Кот Баюн 20.05.2015 08:21

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 1: The class or interface 'int' could not be loaded.
function toFixed (number:Number, precision:int) :Number {


Часовой пояс GMT +4, время: 04:54.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.