Ułamki okresowe

0

Chciałem użyć w obliczeniach liczby 2/3 i napotkałem problem - podczas obliczania, ułamki okresowe zawsze przyjmują wartość 0. Z tego jak co zauważyłem, tyczy się to nie tylko C#, ale i wszystkich języków z rodziny C;/
Jakieś rady?

0

Coś źle robisz, bo to jest nieprawda, że ułamki okresowe przyjmują zawsze zero

0

double z = 2/3 - debuger pokazuje wartość z = 0
Console.WriteLine(2/3) - również uzyskuje 0

0

double z = 2.0/3

0

O dziwo działa:)
Dziękuje za szybką odpowiedź

0
Er napisał(a)

double z = 2/3 - debuger pokazuje wartość z = 0

Dzieląc dwie liczby całkowite otrzymujesz całkowity wynik, nie ma w tym żadnego błędu.

O dziwo działa

Gdy dzielisz liczby rzeczywiste, to w wyniku możesz mieć ułamek. Co w tym dziwnego?

0

Co w tym dziwnego?
że nie wszystkie języki programowania są takie dziwne, że 2/3 wynosi 0 :-)

Przykładowo w Delphi dzielenie zawsze daje wynik rzeczywisty. Ale w zamian pojawiają się pytania, dlaczego wyniku 4/2 nie można przypisać do zmiennej całkowitej...

Oba podejścia są w zasadzie równoważne.

1

W zbiorze liczb całkowitych nie ma ułamków, więc działanie na liczbach całkowitych (np. 2/3) nie ma prawa zwrócić ułamka. Matematyka nie jest zależna od języka programowania.
A, że Delphi nie uznaje praw matematyki, to kolejny argument, żeby go nie używać.

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