Wyświetlanie części ułamlkowej liczby

1

W jaki sposób można poprawnie uzyskać odpowiednie zaokrąglenie liczby do części niecałkowitej?

0

Hej,
pojawił się ciekawy temat :) Ja w sumie nie wiem jak wygląda chomikowanie liczb w kompie, na przykład jak wygląda prezentacja liczby 1/3 w kompie :) Bo ja bym ją zaprezentował właśnie jako 1/3, a jak trzebaby było zaokrąglać, np. do trzech miejsc po przecinku, to wykonujemy całkowite dzielenie 10^3 przez 3, otrzymujemy 333, i wtedy wynikiem jest liczba 0,333. To tak zgrubsza :)

0
  1. Trzeba odróżnić formatowanie liczby (dla ludzkich oczu) na wyjściu, i to zalezy od języka, ale zasadniczo w każdym da się zrobić.

  2. Bardziej fundamentalna sprawą są właściwości liczb. Jesli mówisz o zmiennym przecinku, to wręcz niektóre liczby nie istnieją, np nie istnieje 40,20 ale istnieje 40.20000003 i 40.19999997.
    a) Tak jak kolega zauważył, 1/3 nie da się wyrażić w żadnym systemie.
    b) spotykam często, że IDE programisty oszukuje, niby że dla jego dobra, np prezentuje podobne liczby "ładne" a nie "prawdziwe"

  3. Można użyć typów liczbowych stałoprzecinkowych, decimal w C#, BigDecimal w Javie itd... u nich 40.20 to prawdziwe 40.20 (oczywiście 1/3 nie ma prawidłowego odpowiednika)

  4. Są biblioteki do obliczeń symbolicznych, ale chyba tego nie szukasz.

0
AnyKtokolwiek napisał(a):
  1. Bardziej fundamentalna sprawą są właściwości liczb. Jesli mówisz o zmiennym przecinku, to wręcz niektóre liczby nie istnieją, np nie istnieje 40,20 ale istnieje 40.20000003 i 40.19999997.
    a) Tak jak kolega zauważył, 1/3 nie da się wyrażić w żadnym systemie.
    b) spotykam często, że IDE programisty oszukuje, niby że dla jego dobra, np prezentuje podobne liczby "ładne" a nie "prawdziwe"

Tak, a w którym ciekawość?
Po prostu pierwsze słyszę...
Wiem, że niektóre serwery baz danych i narzędzia do nich robią coś takiego, ale to jest kwestia ustawień połączenia i formatowania danych numerycznych w samym narzędziu, a nie immanentna cecha danego IDE jako takiego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.