Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [biblioteka] Rounder, Czyli jak round() wywołało frustrację
greycoffey
post
Post #1





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Hej,

sfrustrowany dzisiaj zachowaniem funkcji round() której zaokrąglanie half up i half down nie jest tym, za co się podaje, spłodziłem klasę, która robi to poprawnie. Zawiera interfejs oraz domyślną implementację zaokrąglacza, druga implementacja (oparta na bcmath) właśnie się tworzy (co do tego, macie jakiś pomysł na implementację metod roundHalfEven() i roundHalfOdd() w Pamil\Rounder\BcmathRounder w gałęzi bcmath-support?).

Przykład użycia i kod na GitHubie.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
destroyerr
post
Post #2





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Cytat
sfrustrowany dzisiaj zachowaniem funkcji round() której zaokrąglanie half up i half down nie jest tym, za co się podaje

Możesz podać przykład niepoprawnego działania? Sprawdziłem i u mnie zachowywała się normalnie. Przejrzałem Twoje testy i wskazują one na to, że błędnie rozumujesz zaokrąglanie w górę i dół. Chodzi o to, że zaokrągla się wartość bezwzględną, tzn. tak, żeby było od zera w kierunku nieskończoności (dodatniej lub ujemnej). Co zresztą objaśnione jest w dokumentacji:
Cytat
Round val up to precision decimal places away from zero, when it is half way there. Making 1.5 into 2 and -1.5 into -2.

Jeśli chodzi o ten przypadek to funkcja działa zgodnie z opisem.

Ten post edytował destroyerr 31.12.2013, 12:49:45
Go to the top of the page
+Quote Post

Posty w temacie
- greycoffey   [biblioteka] Rounder   30.12.2013, 21:28:35
- - gitbejbe   wygląda fajnie, klasa czytelna i zrozumiała. Choci...   31.12.2013, 10:44:49
- - pyro   Wygląda na sensownie skonstruowany kawałek kodu. N...   31.12.2013, 12:10:41
- - destroyerr   Cytatsfrustrowany dzisiaj zachowaniem funkcji roun...   31.12.2013, 12:49:04
- - greycoffey   @gitbejbe, trafiłeś w sedno, czas napisać coś, co ...   31.12.2013, 12:58:25
- - destroyerr   @greycoffey przekonałeś mnie. Za bardzo skupiłem s...   31.12.2013, 13:39:17
- - gitbejbe   @pyro zastosowanie interfejsów i abstrakcji też m...   31.12.2013, 14:52:56
- - greycoffey   @destroyerr, masz rację, przerobiłem Roundera na m...   31.12.2013, 17:09:16
- - Crozin   Drobne uwagi: - implements RounderInterface możesz...   31.12.2013, 17:45:35
- - pyro   Cytat(greycoffey @ 31.12.2013, 12:58...   31.12.2013, 18:20:46
- - lukasz1985   Na tym polega cały nonsens takich przedsięwzięć, ż...   6.01.2014, 16:02:33
- - com   @up to możesz dać choć jeden sensowny powód poco t...   6.01.2014, 16:20:49
- - Crozin   CytatInterfejsy są po to, żeby móc skorzystać z da...   6.01.2014, 16:42:57
|- - pyro   Cytat(Crozin @ 6.01.2014, 16:42:57 ) ...   6.01.2014, 17:26:11
- - lukasz1985   "Klasa abstrakcyjna raczej nie powinna stanow...   8.01.2014, 13:23:34
- - emp   Cytat(Crozin)Klasa abstrakcyjna raczej nie powinna...   8.01.2014, 13:40:38
- - Crozin   CytatKurcze, już w momencie pisania tamtego postu ...   9.01.2014, 11:10:46
- - lukasz1985   Naprawdę wątpię, żeby komuś chciało się do zaokrąg...   9.01.2014, 19:06:15
- - Crozin   CytatNaprawdę wątpię, żeby komuś chciało się do za...   9.01.2014, 19:31:40
- - greycoffey   Hej, ogarnąłem się po sylwestrze także mogę odpowi...   9.01.2014, 20:51:53


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: 15.10.2025 - 21:01