Witam, chciałbym zapytać czy istnieje jakaś gotowa klasa, która umożliwiałaby proste operacje na ułamkach niewłaściwych?
A jakie ułamki są niewłaściwe?
"Ułamek niewłaściwy - jest to ułamek, w którym licznik jest większy lub równy mianownikowi." (źródło Wikipedia)
Double test = 1.2;
?
Ułamek niewłaściwy, to pojęcie szkolne, nie matematyczne i nie programistyczne.
Ułamek -0.5 = (-1)/2 = 1/(-2) jest właściwy czy niewłaściwy.
-0,5 = (-1)/2 = 1/(-2) jest ułamkiem właściwym gdyż jego wartość jest mniejsza od 1. Wracając do tematu, mógłby ktoś bliżej objaśnić "Double test = 1.2;" ?
Zaraz, normalnie padnę za podłogę (tutaj upadek z krzesła).
Double test = 1.2;
Double typ zmiennej (double oznacza liczbę, z ułamkiem, tak jak int oznacza liczbę całkowitą)
test nazwa zmiennej
= 1.2 przypisanie zmiennej test wartości 1.2
BTW.O co tobie chodzi ?
PS: Masz rację Koziołek, do perełek to to jest w sam raz.
Double ku ścisłości to nie typ zmiennej, to już jest obiektowa wersja liczby. Zmienna byłaby z małej litery - double ;)
Chłopy - za dużo programowania a za mało matematyki.
Chłopak błądzi ale ku światłu - a wy się zastanówcie:
ile w javie jest 12/17? a teraz zacznijcie dodawać i mnożyć te 12/17 po kilka razy a potem podzielcie przez 4...i co wam wyszło...? Nic nie warty double:/
Takie arytmetyka type 0.5 = 1/2 to @bo właśnie w podstawówce.
Albo dodawajcie bardzo małe liczby dziesiętne już nawet niewielkiego minusowego rzędu -taki double wam się wyjedzie po 2,3 iteracji.
A ułamek nie. Do działania na małych liczbach i ułamkach są biblioteki ale w javie nie znam. Używam w Sci-labie i Maximie-bardzo prosto się pisze.
A na dużych jest klasa BigInteger...ale nigdy nie próbowałem odwrócić jej działania na np sumowanie szerego o elementach postaci np. a/(b+c*d) gdzie te literki to liczby np. 0.00000000000000012
Ja też przypuszczałem, że autorowi chodzi o działania typu 1/3+2/5=11/15. Tzn. nie wykonujemy działań na liczbach zmiennoprzecinkowych tylko przekształcamy jak w podstawówce. Ale co mają do tego ułamki niewłaściwe?
@autor, napisałeś
Ułamek niewłaściwy - jest to ułamek, w którym licznik jest większy lub równy mianownikowi.
oraz
-0,5 = (-1)/2 = 1/(-2) jest ułamkiem właściwym gdyż jego wartość jest mniejsza od 1
Nijak to do siebie nie pasuje.
www.scala-lang.org/docu/files/ScalaByExample.pdf
Chapter 6, s 37, początek rozdziału Classes and Objects, klasa Rational do operowania na liczbach wymiernych :)
Myślę, że przepisanie tego do Javy nie sprawi wielu kłopotów :)