Mam następujący kod. Chciałbym mieć taką, aby jeśli price_result jest liczbą całkowitą, powiedzmy 10, to chciałbym dodać dwa miejsca po przecinku. Czyli 10 to 10.00. Lub jeśli równa się 10,6, to 10,60. Nie jestem pewien, jak to zrobić.
price_result = parseFloat(test_var.split('$')[1].slice(0,-1));
javascript
floating-point
użytkownik357034
źródło
źródło
var twoPlacedFloat = + parseFloat(yourString).toFixed(2)
aby przekonwertować na pływakaKiedy używasz
toFixed
, zawsze zwraca wartość jako ciąg. Czasami komplikuje to kod. Aby tego uniknąć, możesz zrobić alternatywną metodę dla liczby.I użyć:
lub po prostu:
źródło
0.1 + 0.2 // 0.30000000000000004
więc potrzebuję korekty(0.1+0.2).round() // 0.3
Jeśli potrzebujesz wydajności (jak w grach):
Jest około 100 razy szybszy niż parseFloat (number.toFixed (2))
http://jsperf.com/parsefloat-tofixed-vs-math-round
źródło
number * 1
że coś może mi umknąć?Aby zwrócić liczbę, dodaj kolejną warstwę w nawiasach. Utrzymuje to w czystości.
źródło
var twoPlacedFloat = parseFloat(('2.00').toFixed(2))
generuje błąd.Jeśli Twoim celem jest parsowanie, a Twój wkład może być dosłowny, możesz spodziewać się
float
itoFixed
nie zapewni tego, więc oto dwie proste funkcje, aby to zapewnić:źródło
parseFloat(parseFloat('10.5').toFixed(2))
powrót10.5
espected10.50
. RównieżparseFloat(parseFloat('10.50').toFixed(2))
wróć10.5
Ceil z lodash jest prawdopodobnie najlepszy
będzie działał również z liczbą i jest bezpieczny
źródło
@sd Krótka odpowiedź: W JS nie ma możliwości, aby wartość typu liczby zawierała końcowe zera po przecinku.
Długa odpowiedź: jest właściwością
toFixed
lubtoPrecision
funkcją JavaScript, aby zwrócić ciąg znaków. Powodem tego jest to, że typ danych Number nie może mieć wartości takiej jak a = 2.00, zawsze usunie końcowe zera po przecinku. Jest to wbudowana właściwość typu danych Number. Aby osiągnąć powyższe w JS, mamy 2 opcjeźródło
Użyj poniższej funkcji, jeśli nie chcesz zaokrąglać.
źródło
Jaka jest jego wartość: Liczba dziesiętna jest liczbą dziesiętną, albo zaokrąglasz ją do innej wartości, albo nie. Wewnętrznie będzie przybliżać ułamek dziesiętny zgodnie z zasadą zmiennoprzecinkowej artmetyki i obsługi. Pozostaje wewnętrznie liczbą dziesiętną (zmiennoprzecinkową, w JS podwójną), bez względu na to, z iloma cyframi chcesz ją wyświetlić.
Aby zaprezentować go do wyświetlania, możesz wybrać precyzję wyświetlania do dowolnej wartości poprzez konwersję ciągów. Prezentacja to problem z wyświetlaniem, a nie pamięć.
źródło
Możesz użyć .toFixed (), aby dla liczb zmiennoprzecinkowych 2 cyfry
Exampale
źródło
Spróbuj tego (patrz komentarze w kodzie):
źródło
Prosty JavaScript, ciąg znaków do pływaka:
źródło
Rozwiązanie, które działa dla mnie, jest następujące
źródło
Zainicjuj narzędzie FormArray Form Builder
Utwórz formularz
Ustaw wartości formularza na kontroler formularzy
źródło
Mam inne rozwiązanie.
Zamiast tego możesz
round()
to zrobićtoFixed()
źródło
parseFloat()
jak zaktualizowałem odpowiedź przez @zsalzbankround()
na liczbach w js. Prawdziwe pytanie brzmi: kto to głosował?