Path: csiph.com!eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: Sap7 Newsgroups: it.comp.lang.javascript Subject: Problema numerico: calcolo dell'inverso e ritorno al numero originario Date: Thu, 10 Sep 2015 19:03:13 +0200 Organization: Aioe.org NNTP Server Lines: 34 Message-ID: NNTP-Posting-Host: eeyWUsS6ryC2XK2vec7mPA.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 X-Notice: Filtered by postfilter v. 0.8.2 X-Mozilla-News-Host: news://nntp.aioe.org:119 Xref: csiph.com it.comp.lang.javascript:7904 Salve a tutti, ho un problema che non so proprio come gestire. Ho bisogno di cambiare unita' di misura di alcuni parametri numerici senza perdere la precisione della conversione. Mi spiego. Se ad esempio ho un valore pari a 111 millimetri e volessi convertirlo in pollici, prendo il valore del campo di input e lo moltiplico per il fattore di conversione opportuno. Nel caso in esempio, semplicemente eseguendo moltiplicazione e divisione, javascript mi da come risultato: 111 * (1/25.4) = 4.370078740157427 Ora, se faccio l'operazione a ritroso 4.370078740157427 * 25.4 = 110.99999999999865 Questo è ovviamente dovuto al numero "limitato" di decimali che tratta. La mia necessità invece è di invertire un numero e tornare al numero iniziale senza perdere nulla. L'esempio riportato è il più semplice dei casi, perchè mi trovo a ragionare con grandezze elevate alla 4 o divise per numeri con potenze strane, quindi un semplice round non lo reputo così affidabile. Come potrei risolvere? Grazie in anticipo.