Round

0

Skoro "round" zaokrągla liczbę w sposób matematyczny to dlaczego nie ma liczb po przecinku tylko do pełnych liczb zaokrągla? Nie ogarniam. Skoro jest zaokrąglenie w sposób matematyczny to liczbę 13.456 powinno mi zaokrąglić do 13.46, tak? a pokazuje 13.

1

Zaokrągla do pełnych, bo tak jest zdefiniowany. Ciężko tutaj więcej powiedzieć.

Skoro jest zaokrąglenie w sposób matematyczny to liczbę 13.456 powinno mi zaokrąglić do 13.46, tak?

Tylko jeśli zaokrąglasz do 2 cyfr po przecinku / 4 znaczących w ogóle.

Może taki kontrargument przyjmiesz: jak "zaokrąglisz" w "sposób matematyczny" poniższą liczbę? $\frac{1}{3}$

0

No rzeczywiście, bo widzę, że trunc, ceil oraz floor też zaokrąglają do pełnych w zależności o czym mówimy góra/dól. No a jeżeli moją liczbę chciałbym zaokrąglić do dwóch po przecinku to z czego powinienem skorzystać?

0

Możesz pomnożyć przez 100, zaokrąglić, podzielić wynik. Ale z reguły najlepszym rozwiązaniem jest nie zaokrąglać w ogóle i robić to dopiero wypisując liczbę do stringa (lub np. wyjścia standardowego)

0

Czyli moją liczbę 13.456 mnożę przez 100 = 1345.6 - zaokrąglam w górę np. przy pomocy ceil i dostaję 1346 i dzielę przez 100 i dostaję 13.46, dobrze rozumiem? To samo zadziała, jeśli liczba przed przecinkiem będzie trzycyfrowa, czterocyfrowa itd ? :)

Ps. Co masz na myśli pisząc wyjdzie standardowe lub string? string to jest chyba do napisów, więc co liczby mają do tego?

Dziękuję.

0

Chodzi mi właśnie o to, że dość rzadko potrzebujesz zaokrąglać w innych kontekstach niż przekazanie użytkownikowi wartości w sensownym formacie. Jeśli chcesz więcej (n) cyfr po przecinku to mnóż i dziel przez pow(10, n)

Przy czym pamiętaj, że liczby zmiennoprzecinkowe wciąż reprezentowane są binarnie i np. 0.15 nie jest skończenie reprezentowalne.

1

Zadaj sobie pytanie, po co chcesz zaokrąglać liczbę do dwóch miejsc? Żeby wyświetlić ją z dwoma miejscami?

No to nie zaokrąglaj, tylko użyj odpowiedniego formatu podczas wypisywania liczby. A to już zależy od tego, za pomocą jakiej funkcji ją konwertujesz na tekst i wyświetlasz.

0

Muszę w każdym obliczeniu od razu liczbę zaokrąglić, próbuję napisać pewną rzecz i jeżeli od razu nie zaokrąglam to w końcu wychodzi mi liczba, która nie zgadza się z liczbą, która powinna wyjść. Dlatego tak jest, że jest dużo mnożenia przez procenty, mnożenie wcześniej otrzymanych wyników i okazuje się, że z liczba, która ma 2 liczby po przecinku w końcu pojawia mi się liczba, która ma 3 liczby po przecinku a nie może tak być, że sam wynik zaokrąglam tylko każde wcześniejsze wyliczenie również muszę.

0

Dostałeś już odpowiedź. Mnożysz przez 100, zaokrąglasz do całkowitej, dzielisz przez 100.

0

Zajrzyj sobie tutaj

1 użytkowników online, w tym zalogowanych: 0, gości: 1