Strona 1 z 1

zaokrąglanie

: 16 cze 2010 17:29
autor: santiago
Witam!!

Mam takie pytanko: jak zaokrąglić liczbę na przykład do dwóch miejsc po przecinku.

Czyli: 62,987~=62,99
100,123~=100,12

Nie chodzi mi o sposób wyświetlania (bo to można ustawić w parametrach Indicatora -> Digits of precision) - zaokrąglenie potrzebne mi jest do obliczeń.

POZDRAWIAM!!

Re: zaokrąglanie

: 16 cze 2010 17:32
autor: skoziate
Razy 100, zaokrąglenie, dzielenie przez 100 :-)

Re: zaokrąglanie

: 16 cze 2010 17:44
autor: santiago
No ale jak zrobić "zaokrąglenie"???

Re: zaokrąglanie

: 16 cze 2010 17:56
autor: wino
Wciśnij Ctrl+Space, i wpisz Round To Nearest

Re: zaokrąglanie

: 17 cze 2010 17:17
autor: santiago
Działa :) Dzięki za podpowiedź!

Ale zastanawiam się, czy nie można zrobić tego bardziej "elegancko" ;)

Bo co w przypadku kiedy chciałbym mieć możliwość wyboru:

62,985~=62,99
albo
62,985~=62,98

POZDRAWIAM!!

zaokrąglanie

: 17 cze 2010 17:43
autor: Pitol
Zaokrąglanie polega na:
- odrzuceniu lub zastąpieniu zerami pewnej ilości cyfr końcowych danej liczby
- zwiększeniu ostatniej z pozostałych cyfr o jeden, jeśli kolejna cyfra liczby pierwotnej była większa lub równa 5.
Jak chcesz mieć własną metodę to... to sobie ją zrób :P

Re: zaokrąglanie

: 20 cze 2010 19:16
autor: santiago
Myślałem, że jest może jakaś gotowa funkcja :)

Dziękuję za pomoc, POZDRAWIAM!!!

zaokrąglanie

: 20 cze 2010 20:42
autor: Nowszy
Jest gotowa funkcja, a właściwie dwie: Round Towards + Infinity i taka sama z '0=- Infinity' - wykorzystując mnożenie/dzielenie jak wyżej otrzymasz odpowiedni efekt.

Re: zaokrąglanie

: 23 cze 2010 23:13
autor: santiago
Dzięki!!! :)

Ale:
-funkcja "Round Toward -Infinity " zaokrągla w dół w następujący sposób:
1,139~=1,13
-funkcja "Round Toward +Infinity " zaokrągla w górę w następujący sposób:
1,131~=1,14
-funkcja"Round To Nearest " zaokrągla w zależności od parzystości lub nieparzystości cyfry przed zaokrągleniem:
1,135~=1,14 i 1,125~=1,12 (3-nieparzysta, więc zaokrągla w górę; 2-parzysta, więc zaokrągla w dół).

Trochę dziwne jest działanie funkcji "Round To Nearest", bo raczej chciałoby się mieć funkcję, która działa tak jak pisał Pitol ("Zaokrąglanie polega na:
- zwiększeniu ostatniej z pozostałych cyfr o jeden, jeśli kolejna cyfra liczby pierwotnej była większa lub równa 5.")

Chyba nie ma innego wyjścia jak napisanie własnej funkcji???

POZDRAWIAM!