Форум 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=129480)

amesqit 03.09.2009 13:35

2 ZIK68 и murz

и для as2 и для as3

Код AS1/AS2:

var a = 1.9/0.1;
var b = 5.3-4
var d = 2.3-1
trace(a == 19); // false
trace(b ==1.3); // false
trace(d ==1.3); // false


Zik. 03.09.2009 13:46

Код AS1/AS2:

var a = Math.ceil(1.9/0.1);
var b = ((100*5.3)-(100*4))/100;
var d = ((1000*2.3)-(1000*1))/1000;
trace(a == 19); // true
trace(b == 1.3); // true
trace(d == 1.3); // true

:p

iNils 03.09.2009 14:06

Цитата:

Это неизбежно приводит к багам или увеличению сроков разработки.
Яски все правильно сказал, проблем с этим возникать не должно Если у вас любая 10 секундная проблема создает большие сложности, значит у вас мало опыта.
Цитата:

хммм а есть вопрос гео координат, там как раз важна точность десятых, сотых и тысячных
См. выше. Умножате все на 10, 100 или 1000 и проблем нет.

amesqit 03.09.2009 14:09

Цитата:

Сообщение от ZIK68 (Сообщение 847875)
Код AS1/AS2:

var a = Math.ceil(1.9/0.1);
var b = ((100*5.3)-(100*4))/100;
var d = 2.3-1;
trace(a == 19);// true
trace(b == 1.3);// true
trace(b == 1.3);// true

:p

Добавлено через 9 минут
кстати, непонятно
почему после второй строчки третья становиться тоже true, если я с ней даже ниче не делал?

там моя опечатка была, последние 2 строчки в примере были одинаковые, а вы в своем примере это не исправили :D

Zik. 03.09.2009 14:13

исправил
опять непонятно
если
Код AS1/AS2:

var d = ((100*2.3)-(100*1))/100;

то выводит false, если замениьт на тыщу, то все тру


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

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