SORU
20 Mayıs 2010, PERŞEMBE


JavaScript hassas Finansal Hesaplama. Bu Sorunlar Nelerdir?

Çapraz platform oluşturma çıkarına kodu, JavaScript ile basit bir mali uygulama geliştirmek istiyorum. Hesaplamaları bileşik faiz ve nispeten uzun ondalık sayılar dahil gerekli. JavaScript math—eğer mümkün ise bu tür yapmak için kullanırken önlemek için ne olduğunu bilmek istiyorum!

CEVAP
20 Mayıs 2010, PERŞEMBE


Muhtemelen 100, ve bütün sent tüm parasal değerleri temsil ederek ondalık değerleri ölçek gerekir. Bu problems with floating-point logic and arithmetic kaçınmaktır. JavaScript ondalık veri türü yok - yalnızca sayısal veri türü kayan nokta. Bu nedenle 25.50 dolar yerine 2550 sent olarak para işlemek için genellikle tavsiye edilir.

JavaScript düşünün:

var result = 1.0   2.0;     // (result === 3.0) returns true

Ama:

var result = 0.1   0.2;     // (result === 0.3) returns false

0.1 0.2 === 0.3 false, ama kayan nokta neyse tamsayı aritmetik verir ifadesi tam, ondalık gösterimi hata Ölçekleme önlenebilir1.

Gerçek sayılar kümesi sonsuz ise, onları yalnızca sınırlı sayıda (tam olarak 18,437,736,874,454,810,627) tam olarak kayan nokta JavaScript biçimini temsil edilebilir unutmayın. Bu nedenle diğer sayılar temsili gerçek sayı bir yaklaşım olacaktır2.


1Douglas Crockford: JavaScript: The Good Parts: Appendix A - Awful Parts (page 105).2David Flanagan: JavaScript: The Definitive Guide, Fourth Edition: 3.1.3 Floating-Point Literals (page 31).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmmightySofia

    EmmightySofi

    25 EYLÜL 2011
  • Perihelion

    Perihelion

    23 NİSAN 2008
  • bored before i even began

    bored before

    30 Mart 2009