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

VVall 02.09.2009 17:14

http://en.wikipedia.org/wiki/Floating_point

iNils 02.09.2009 17:14

Цитата:

но подобное виже впервые во flash.
Код:

<html>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
        <script>
                var n = 2;
                for (i = 0; i < 10; i++) {
                        n += .1;
                }
                alert (n)
        </script>
</body>
</html>

Создайте html документ с этим кодом и получите 3.000000000000001

Волгоградец 02.09.2009 18:07

Все правильно - все основываются на одном и том же стандарте. Цитата из хэлпа:
Цитата:

Number
A data type representing an IEEE-754 double-precision floating-point number. You can manipulate primitive numeric values by using the methods and properties associated with the Number class. This class is identical to the JavaScript Number class.
В .NET то же самое...

Dezar 02.09.2009 18:24

и это жесть господа)

VVall 02.09.2009 18:48

Это не жесть, а ваше недопонимание, как компьютер работает с числами с плавающей запятой. Если интересно - почитайте статью в английской википедии, там всё очень подробно описано. IEEE-754 существует уже 24 года и сейчас является самым распространённым стандартом - повода для беспокойства нет.

switcher! 02.09.2009 18:48

немного утрированно, как мне показалось, но в тему

kackbip 02.09.2009 19:02

И все таки это следствие лени разработчиков.
Таких сюрпризов можно было бы избежать.

mry 02.09.2009 19:25

Delphi тоже иногда не любит Real
Даже Excel страдает подобным

Felicast 02.09.2009 19:52

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

BlooDHounD 02.09.2009 21:27

так работает процессор. такое поведение абсолютно во всех языках происходит при работе с float'ами. программное обеспечение тут не причём. это зашито на аппаратном уровне.


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

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