![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 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/
Nie znalazłem nigdzie pomocy, ale dlaczego wynik tego prostego równania wynosi: 46.129999999999995 zamiast 46.13? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Poniewaz tak komputer przetwarza dane rzeczywiste. Normalka
![]() Musisz poprostu uzyc zaokrąglenia do dwoch miejsc po przecinku -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 10 Dołączył: 17.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Bo 46.13 nie można przedstawić w skończonej reprezentacji o bazie 2.
http://docs.oracle.com/cd/E19957-01/806-35...g_goldberg.html |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 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) ze strony: http://www.yarpo.pl/2011/03/06/js-zaokragl...a-dokladnoscia/{ var factor = Math.pow(10, k); return Math.round(n*factor)/factor; } Temat do zamknięcia. Ten post edytował Tomplus 22.12.2014, 10:20:44 |
|
|
![]()
Post
#5
|
|
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. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
@PrinceOfPersia
Jak napisałem wyżej. Po wyjaśnieniach nospora i solificati znalazłem odpowiedź, a raczej, konieczność jaką musiałem podjąć. a co do document.write i console.log. Wiem o tym, ale testowałem na stronie którą podałem w zapytaniu i tam console.log nie działa, a zalecana jest funkcja którą ja zapisuje. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 717 Pomógł: 120 Dołączył: 18.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
działa przecież console.log na tej stronie, jak się otworzy konsolę
![]() co do document.write, to niby tutaj nie ma to znaczenia, ale ogólnie mnie to zawsze razi. Podobnie jak eval. Nie razi mnie bez powodu ofc - natomiast tak jak mówisz, rozwiązany problem, więc nie ma o czym rozmawiać ![]() -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
działa przecież console.log na tej stronie, jak się otworzy konsolę ![]() co do document.write, to niby tutaj nie ma to znaczenia, ale ogólnie mnie to zawsze razi. Podobnie jak eval. Nie razi mnie bez powodu ofc - natomiast tak jak mówisz, rozwiązany problem, więc nie ma o czym rozmawiać ![]() echo albo print_r też Cie razi? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 21.06.2025 - 12:35 |