Цитата:
|
Сообщение от haetorigam#
О, вот ещё
 Код:
var i=90;
var m=Math.cos(i*Math.PI/180);
trace(m);
m=6.12303176911189e-17;
даже весело
|
Не понимаю, зачем тебе вводить i=90, когда строка
var m=Math.cos(Math.PI/2);
и без того выдает
m=6.12303176911189e-17;
Проблема в том, что PI во флэше, естественно, не идеальное. Напиши:
trace(Math.PI);
В Output'е появится следующее:
3.14159265358979
Всего лишь 14 знаков после запятой. Достаточно? Нет. Потому что при этом пи флэш выдает то m, которое ты написал.
Насколько я понимаю запись "е-17", это означает, что число умножено на 10 в минус семнадцатой степени. 6*10^-17 — почти ноль. Но не ноль.
Вот 100 знаков после запятой:
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Этого, казалось, было бы достаточно. Нет. Флэшу все равно. Выражение Math.cos(*пи с сотней знаков*/2) дает то же самое.
Может, в проге недостаточно знаков?

Наверное, знаков там хватает (видимо, и пи у них выводится неполностью).
Просто надо использовать
Math.round() 
Кстати, если нужно
1 452 717 знаков после запятой - вам нужно скачать
архив (673 Кб).