Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Złe wyniki działań matematycznych
hapek1
post 16.05.2013, 16:26:48
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 28.11.2009

Ostrzeżenie: (0%)
-----


Robię właśnie prostą aplikację w js, jednak napotkałem na dziwny problem, otóż wyniki z pozornie prostego działania wychodzą błędne.
No więc mam np. przelicznik C > K, K > C i dla niektórych wartości wychodzi dobrze dla innych jest źle

Kod
alert(18-273.15);
alert(17-273.15);


Pierwsza linia wyświetla -255.14999999999998 a druga -256.15

Drugi mój problem to dodanie wartości z inputa do liczby, w inpucie mam np. 25 i dodaję do tego 273.15 to wynik mam 25273.15 czyli normalnie łączy 2 ciągi, jeśli wpiszę np. 25.3 to wyniku nie mam żadnego, odejmowanie działa poprawnie.
Go to the top of the page
+Quote Post
nospor
post 16.05.2013, 16:36:11
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad1) Normalka ze przy liczbach zmienno przecinkowych takie rzeczy się dzieją
ad2) dokumentacja js -> parseInt()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pawel_W
post 16.05.2013, 16:39:50
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 16.05.2013, 17:36:11 ) *
ad2) dokumentacja js -> parseInt()

w tym wypadku raczej parseFloat smile.gif
Go to the top of the page
+Quote Post
hapek1
post 16.05.2013, 16:51:22
Post #4





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 28.11.2009

Ostrzeżenie: (0%)
-----


dzięki za parseFloat, parseInt właśnie znalazłem ale to nie było to co było mi potrzebne.

A jest jakiś sposób aby liczyło normalnie, bo duża część mojego kodu używa liczb zmiennoprzecinkowych i w niektórych przypadkach wyniki są z kosmosu
Go to the top of the page
+Quote Post
PrinceOfPersia
post 16.05.2013, 17:00:28
Post #5





Grupa: Zarejestrowani
Postów: 717
Pomógł: 120
Dołączył: 18.04.2009

Ostrzeżenie: (0%)
-----


Cytat
A jest jakiś sposób aby liczyło normalnie, bo duża część mojego kodu używa liczb zmiennoprzecinkowych i w niektórych przypadkach wyniki są z kosmosu

to etapie wykonywania obliczeń, licz to normalnie bez zaokrąglania (żeby nie zgubić końcówek), ale przy samym wyświetlaniu liczb zastosuj zaokrąglanie, np. Math.round,
Kod
Math.round(LICZBA)  // zaokrągla 3.92292 do 4
Math.round(LICZBA * 100) / 100 // zaokrągla 3.92292 do 3.92


Ten post edytował PrinceOfPersia 16.05.2013, 17:00:43


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:50