2009-07-06 9 views
8

Bir web uygulaması için 64 bit büyüklüğünde numaralar işlemek istiyorum. Test sırasında, javascript'in (veya bir bütün olarak tarayıcının) 17 haneye kadar işlediğini gördüm. 64 bitlik bir sayı en fazla 20 hane sahiptir, ancak javascript sayıyı işledikten sonra en az 3 basamak yuvarlanır ve 0'a ayarlanır. Bunun nereden geldiğini düşündüğünüz herhangi bir fikir var mı? Daha da önemlisi, etrafta nasıl çalışılacağı hakkında bir fikir var mı?Firefox/IE7'deki 17 haneden daha büyük sayıları nasıl ele alabilirim?

cevap

5

ulaşmış ise dizeleri olarak onları tedavi gerektiğini düşünüyorum, tüm sayılar sadece hassas yaklaşık 16 basamak var demektir IEEE double precision kayan nokta numaraları vardır; 64 bitin kalan kısmı üs için ayrılmıştır. Fabien'in belirttiği gibi, tüm 64 bit'e ihtiyacınız varsa daha fazla hassasiyet elde etmek için bazı hileler yapmanız gerekecektir.

5

Ben size JavaScript sınırını JavaScript yılında (see here)

0

Onları iki veya daha fazla sayıya bölme deneyebilirsiniz (belki de bir sınıfta), ancak onlarla çalışmak için bazı aritmetik yardımcı işlevlere gereksiniminiz olabilir.

Alkış

2

diğerleri belirttiği gibi, JS çiftler uygular, böylece daha büyük sayılarla işlemler için başka bir yere bakmak gerekir. BigInt, tamsayılar için hassas matematik için bir kütüphanedir.

İlgili konular