Ho letto la maggior parte dei post qui sul punto mobile, e capisco il problema di fondo che usando IEEE 754 (e solo per la natura di memorizzare numeri in binario) certe frazioni non possono essere rappresentate. Sto cercando di capire il seguente: Se entrambi Python e JavaScript utilizzano lo standard IEEE 754, perché è che eseguendo il seguente in PythonUn'altra domanda a virgola mobile
.1 + 0,1
Risultati in ,20000000000000001 (che è quello di prevedibile)
Dove, come in Javascript (almeno in Chrome e Firefox) la risposta è 0,2
Tuttavia l'esecuzione di
.1 + .2
In entrambi lingue risultati in 0,30000000000000004
Inoltre, eseguendo var a = 0,3; in JavaScript e la stampa di risultati in 0,3
Dove come fare a = 0,3 nei risultati Python in 0,29999999999999999
Vorrei capire il motivo di questa differenza di comportamento.
Inoltre, molti dei post sul sistema operativo si collegano a una porta JavaScript di Java BigDecimal, ma il collegamento è morto. Qualcuno ha una copia?
Come sempre, una risposta chiara! –
Grazie! Questo aiuta a chiarirlo. – jeffmax
Non l'ho ancora provato, ma il nuovo collegamento alla classe JavaScript BigDecimal è http://stz-ida.de/index.php?option=com_content&view=article&id=18:bigdecimal-unterstuetzung-fuer-javascript&catid=4: software & Itemid = 32 – jeffmax