![]() |
Math.sin(Math.PI) != 0
Здравствуйте.
Столкнулся с вот таким: Код:
trace(Math.sin(Math.PI)); |
бороться с чем? с погрешностью? - <<0 или Number.toFixed(). зависит, от того, что нужно в итоге.
|
Мне нужно получить ряд значений, вычисляемых по формуле:
Код:
var __value:Number = Math.sin(Math.PI*(i/k));Соответственно при значении i = k значение под знаком синуса равно: Math.PI*(k/k) == Math.PI Ну а синус от пи всегда был равен 0. А здесь не так... |
а вы себе представляете, сколько знаков после запятой у Math.PI и сколько знаков можно поместить в Number (float / double)?
|
Представлять - не представляю, но
Код:
trace(Math.sin(Math.PI/2)); |
а как это связано?
В Number в дробную часть нельзя поместить больше 8 разрядов в шестнадцатеричной системе счисления, а пи - иррациональное число, и количество знаков после запятой бесконечно. для наглядности: Код:
trace(Math.sin(Math.PI).toFixed(8)); |
Спасибо. Просто думается, что такие очевидные вещи, как sin(PI) должны были бы быть реализованы как-то по-лучше.
|
"что такое хорошо, а что такое плохо" каждый понимает по-разному ;-)
|
| Часовой пояс GMT +4, время: 19:56. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.