Ho alcuni input sul mio sito che rappresentano numeri in virgola mobile con un massimo di dieci cifre di precisione (in decimale). Ad un certo punto, nel codice di convalida lato client, ho bisogno di confrontare un paio di quei valori per vedere se sono uguali o meno, e qui, come ci si aspetterebbe, le intrinseche di IEEE754 fanno sì che un semplice controllo fallisca con cose come (2.0000000000 == 2.0000000001) = true.Precisione arbitraria Numeri float su JavaScript
Posso rompere il numero in virgola mobile in due lunghezze per ciascun lato del punto, rendere ogni lato lungo 64 bit e fare i miei confronti manualmente, ma sembra così brutto!
Qualsiasi libreria Javascript decente per gestire numeri float di precisione arbitrari (o almeno garantiti) su Javascript?
Grazie in anticipo!
PS: Una soluzione basata GWT ha un ++
Questo problema può apparire su QUALSIASI punto mobile di precisione arbitrario, altrimenti si imposta la precisione per l'uguaglianza. Questa è la natura intrinseca dei numeri in virgola mobile. Utilizzare la matematica punto fisso con lunghezza arbitraria. – kirilloid
@kirilloid ovviamente potrebbe apparire, pensavo solo che valeva la pena elaborare la domanda (di solito porta a risposte più elaborate). Grazie comunque! – opsidao