Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem matematyczny JS, Z pozoru banalne.
Tomplus
post
Post #1





Grupa: Zarejestrowani
Postów: 1 885
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


Mam taką prostą funkcję: (w rzeczywistości jest bardziej skomplikowana, ale wynik jest taki sam). Działa na mojej stronie, działa tak offline, oraz online np. w tym narzędziu do testowania JS (i PHP):
http://writecodeonline.com/javascript/
  1. var a = eval(23.5);
  2. var b = eval(11.01);
  3. var c = eval(11.62);
  4. var wynik;
  5. wynik = a + b + c;
  6. document.write('wynik: '+ wynik);


Nie znalazłem nigdzie pomocy, ale dlaczego wynik tego prostego równania wynosi: 46.129999999999995 zamiast 46.13?

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 885
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


To wiele wyjaśnia acz można się zirytować przy takich błędach. No cóż. dzięki za odpowiedzi.

Znalazłem prostą, a jakże, funkcję która to zaokrągla.

Kod
function Round(n, k)
{
    var factor = Math.pow(10, k);
    return Math.round(n*factor)/factor;
}
ze strony: http://www.yarpo.pl/2011/03/06/js-zaokragl...a-dokladnoscia/


Temat do zamknięcia.

Ten post edytował Tomplus 22.12.2014, 10:20:44
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.12.2025 - 03:01