1
เหตุใด Math.pow () (บางครั้ง) จึงไม่เท่ากับ ** ใน JavaScript
ฉันเพิ่งค้นพบคุณลักษณะ ECMAScript 7 a**bเป็นทางเลือกสำหรับMath.pow(a,b)( อ้างอิง MDN ) และพบการสนทนาในโพสต์นั้นซึ่งเห็นได้ชัดว่าพวกเขาทำงานแตกต่างกัน ฉันได้ทดสอบใน Chrome 55 และสามารถยืนยันได้ว่าผลลัพธ์แตกต่างกัน Math.pow(99,99) ผลตอบแทน 3.697296376497263e+197 แต่ทว่า 99**99 ผลตอบแทน 3.697296376497268e+197 ดังนั้นการเข้าสู่ระบบความแตกต่างของผลในการMath.pow(99,99) - 99**99-5.311379928167671e+182 จนถึงตอนนี้อาจกล่าวได้ว่าเป็นเพียงการนำไปใช้งานอื่น แต่การรวมไว้ในฟังก์ชั่นจะทำงานแตกต่างกันอีกครั้ง: function diff(x) { return Math.pow(x,x) - x**x; } เรียกร้องผลตอบแทนdiff(99)0 เหตุใดจึงเกิดขึ้น ดังที่xszabojชี้ให้เห็นปัญหานี้สามารถ จำกัด ให้แคบลงได้: var x = 99; x**x - 99**99; // Returns -5.311379928167671e+182