Math.cos (Math.PI / 2) возвращает 6.123031769111886e-17 в JavaScript и AS3?

Если я правильно понимаю, и JavaScript, и ActionScript 3 работают с радианами.

Таким образом, ожидаемый результат следующих кодов будет следующим:

Math.PI                 //Expected 3.141592653589793, got 3.141592653589793

Math.sin(0)             //Expected 0, got 0
Math.sin(Math.PI/2)     //Expected 1, got 1
Math.sin(Math.PI)       //Expected 0, got 1.2246063538223773e-16
Math.sin(Math.PI*3/2)   //Expected -1, got -1
Math.sin(Math.PI*2)     //Expected 0, got -2.4492127076447545e-16

Math.cos(0)             //Expected 1, got 1
Math.cos(Math.PI/2)     //Expected 0, got 6.123031769111886e-17
Math.cos(Math.PI)       //Expected -1, got -1
Math.cos(Math.PI*3/2)   //Expected 0, got -1.836909530733566e-16
Math.cos(Math.PI*2)     //Expected 1, got 1

Такое же поведение наблюдается в Firefox, Chrome, Safari, а также во Flash Professional CS5.5. Я использую Mac OS X 10.7.2.

Тест:

http://jsfiddle.net/KA4VM/

8
задан Tyilo 11 December 2016 в 15:36
поделиться