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
PrinceOfPersia
post
Post #2





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

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


no ale po co tak, skoro możesz użyć metody toFixed?
https://developer.mozilla.org/pl/docs/Web/J.../Number/toFixed

Kod
wynik.toFixed(2)

i masz to, co chcesz.

albo sztuczka z:
Kod
~~(wynik * 100) / 100


Cytat
var a = eval(23.5);
var b = eval(11.01);
var c = eval(11.62);

użycie tu funkcji eval nie ma sensu....

Cytat
document.write('wynik: '+ wynik);

jak będziesz używał funkcji document.write (której nie powinno się używać, tak jak evala), to twój następny wątek na forum będzie pod tytułem "czemu mi się strona się nie wczytuje, jest białe tło" (bo tak działa document.write właśnie, że kasuje całą zawartość strony, po wczytaniu).

console.log jest lepsze do testowania.

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: 25.12.2025 - 00:29