سؤال

باستخدام وظيفة JavaScript

function squareIt(number) {
   return number * number;
}

عندما يتم إعطاء الرقم 4294967296 ، يتم إرجاع الوظيفة 18446744073709552000

يعلم الجميع أن الإجابة الحقيقية هي 18446744073709551616 :-)

أعتقد أن هذا هو مع التقريب على جهاز 32 بت. ومع ذلك ، هل يعطي هذا البرنامج النصي الإجابة الصحيحة على جهاز 64 بت؟ هل هناك اي احد جرب هذة؟

هل كانت مفيدة؟

المحلول

كريسف- انظر هذا المنصب. كما أنه من الأسهل على الأشخاص تقييم سؤالك عن طريق كتابة JavaScript التالية مباشرة في مربع نص URL للمتصفح:

javascript:4294967296*4294967296

نصائح أخرى

يستخدم JavaScript 64 بت نقطة الحساب الداخلي داخليًا للحسابات العددية - النتائج التي تراها هي انعكاس لهذا ، وسوف يكون سعيدًا بغض النظر عن الهندسة المعمارية الأساسية.

ماذا عن هذا

function squareIt(number){
return Math.pow(number,2)
}

Here is one more example based on BigInteger.js.

alert(bigInt(4294967296).square());
<script src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top