Mam kilka danych wejściowych w mojej witrynie reprezentujących liczby zmiennoprzecinkowe z maksymalnie dziesiętnymi cyframi dokładności (w systemie dziesiętnym). W pewnym momencie, w kodzie walidacyjnym po stronie klienta, muszę porównać kilka z tych wartości, aby zobaczyć, czy są one równe, czy nie, a tutaj, jak można się spodziewać, nieinwazyjność IEEE754 sprawia, że proste sprawdzenie kończy się niepowodzeniem z takimi rzeczami jak (2.0000000000 == 2.0000000001) = true.Arbitralna precyzja Liczba zmiennoprzecinkowa na JavaScript
Mogę złamać liczbę zmiennoprzecinkową w dwóch długich dla każdej strony kropki, zrobić każdej stronie 64-bitową długość i zrobić moje porównania ręcznie, ale wygląda tak brzydko!
Przyzwoita biblioteka JavaScript do obsługi dowolnych (lub przynajmniej gwarantowanych) liczb zmiennoprzecinkowych na JavaScript?
Z góry dziękuję!
PS: GWT rozwiązanie oparte A ma ++
Ten problem może pojawić się NA dowolnym dowolnym zmiennoprzecinkowym precyzji, w przeciwnym razie należy ustawić dokładność dla równości. Jest to nieodłączny charakter liczb zmiennoprzecinkowych. Używaj matematyki ustalonej z dowolną długością. – kirilloid
@kirilloid oczywiście może się wydawać, po prostu pomyślałem, że warto było rozwinąć pytanie (zwykle prowadzi to do bardziej dopracowanych odpowiedzi). Dzięki i tak! – opsidao