Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   убрать знак "-" (http://www.flasher.ru/forum/showthread.php?t=125433)

_moscow 24.05.2009 14:30

убрать знак "-"
 
Подскажите пожалуйста , в процесе расчетов получаю цыфру var g = -100; как убрать знак минуса и чтоб тип переменной не изминился ?

Stargazer 24.05.2009 14:52

взять модуль от g? (Math.abs(g))

willis83 24.05.2009 14:52

умножте на 2 и суммируйте. Не знаю, может у класса Math есть модуль.

Добавлено через 1 минуту
Math.abs

Division 24.05.2009 14:57

Цитата:

умножте на 2 и суммируйте
Никогда так не делайте. К тому же не сработает.

willis83 24.05.2009 15:12

прогнал, извиняюсь. ну тут вообщем-то минимум смекалки и готово. Я имел ввиду это:
Код AS3:

function module(myvar:int):int {
        if(myvar < 0) {
                var summ = myvar * 2*(-1);
                myvar += summ;
                return myvar;
        } else { return myvar; }
};

Меня опять обвинят в том что я всякую фигню советую, поэтому никогда так не делайте.
Используйте Math.abs(myvar);

Stargazer 24.05.2009 15:17

Цитата:

Сообщение от willis83 (Сообщение 822558)
Я имел ввиду это

Это конкурс "кто напишет самый длинный способ получить модуль числа"? )))

Код AS1/AS2:

function module(v:Number):Number {
        if(v < 0) { return -v;
        } else { return v; }
};

P.S. Конечно, эффективнее использовать Math.abs, я думаю, все поняли.

VVall 24.05.2009 15:18

Тогда уж return (v<0)?-v:v;

willis83 24.05.2009 15:22

Stargazer, вы правы! Стормозил я чё-то 8)

Добавлено через 4 минуты
VVall, круто, я даже и не знал что синтаксис такие каляки поддерживает ((

Добавлено через 23 минуты
А где можно про такой синтаксис почитать? К регулярным выражением это, как я понимаю не имеет никакого отношения? Данная конструкция описывает условие if?
в скобках условие, после знака вопроса действие, а через : действие else, так же? Хотелось бы больше узнать про такие конструкции

iNils 24.05.2009 15:55

Цитата:

А где можно про такой синтаксис почитать?
http://help.adobe.com/ru_RU/AS3LCR/F...ml#conditional

willis83 24.05.2009 16:06

спасибо

VVall 24.05.2009 16:45

Общие сведения здесь: http://ru.wikipedia.org/wiki/Тернарн...овная_операция

_moscow 25.05.2009 00:10

Теперь опять проблема с подсчетами ,

например отнимаем в цыкле

Код AS3:

 
var _num:Number = 50;
 
for (var i:int = 0; i < 10; i++) {
 
trace(_num -= 0.1);
}
 
//результат
 
49.9
49.8
49.699999999999996
49.599999999999994
49.49999999999999
49.39999999999999
49.29999999999999
49.19999999999999
49.09999999999999
48.999999999999986

а почему ? так должноже быть
49.9
49.8
49.7
49.6
и.т.д может я что не так делаю , и как этого избежать ?

Stargazer 25.05.2009 00:14

По-моему, погрешность в 1*10^-15 - это не так уж страшно :)

wvxvw 25.05.2009 00:18

>> и как этого избежать?
Отнимайте целые числа, а потом делите.

_moscow 25.05.2009 00:24

NumberUtilities.round(89.9000000, .01);

в книге написанно так округлять - но оно бьет ошибку и класс я этот найти не могу !

wvxvw 25.05.2009 00:54

Это чей-то класс, (не билт-ин).
А в чем проблема отнять целое число и поделить на десять?

_moscow 25.05.2009 01:06

ну можно отнять целое число но тогда нужно вернуть 0.9 , так тоже не получается , у меня обьект двигается скорость 0.1 , я не могу отнять 1

iNils 25.05.2009 01:27

Код AS3:

var _num:Number = 500;
 
for (var i:int = 0; i < 10; i++) {
        _num--;
        trace (_num/10);
}

Код AS3:

49.9
49.8
49.7
49.6
49.5
49.4
49.3
49.2
49.1
49



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

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