Autor Zpráva
Werewolf
Profil
Zdravím.

Koupil jsem si chytrou knihu o C# a hned použil příklad mocnění.
double x;
double y;
double z = System.Math.Pow(x, y);
Zkusil jsem 2^64, ale program vrátil 1,84467440737096E+19.
Já bych potřeboval, aby program vrátil to, co vrátí PHP funkce bcpow, tedy v tomto případě 18446744073709551616.

Šlo by to? Díky za rady :-)
Joker
Profil
Vždyť to je to samé číslo, jenom jinak zapsané.

Mimochodem, ohledně umocňování, rozhodně není dobrý nápad k tomu používat operátor ^ ...před časem jsem narazil na velmi veselý příklad.
Timy
Profil
Joker:
Stejné číslo to není.

1,84467440737096E+19 = 1,84467440737096 * 10^19 = 18446744073709600000 != 18446744073709551616.

Mimochodem, ohledně umocňování, rozhodně není dobrý nápad k tomu používat operátor ^ ...před časem jsem narazil na velmi veselý příklad.
Tohle moc nechápu -- v programovacích jazycích je to nějaký binární operátor, v TeXu je to standardní značení mocnin.
Joker
Profil
Timy:
Stejné číslo to není.
Jasně, ale není jen nějak zaokrouhlená ta prezentace? Tj. že kdyby se to porovnalo, dá to to samé?

Tohle moc nechápu -- v programovacích jazycích je to nějaký binární operátor
Tak teď se bavíme konkrétně o C# (i když ten příklad je z klasického C, ale ten operátor je v obou stejný).
Na tom článku mě pobavilo to, čeho ten programátor dosáhl... a hlavně představa toho chudáka, co to pak ladil :-) Kdybych si dal vypsat MAX_PID s výsledkem 1 a pak (MAX_PID + 1) s výsledkem 6, asi se na to vykašlu a jdu domů :-)
Timy
Profil
Joker:
Jasně, ale není jen nějak zaokrouhlená ta prezentace? Tj. že kdyby se to porovnalo, dá to to samé?
http://msdn.microsoft.com/en-us/library/678hzkk9(VS.71).aspx
Precision: 15-16 digits

Přesnější už to asi nebude. Takže Werewolfovi asi nezbyde nic jiného, než si stáhnout nějakou knihovnu pro práci s velkými čísly. Nebo si nějakou sám napsat, je to docela zábava.

Kdybych si dal vypsat MAX_PID s výsledkem 1 a pak (MAX_PID + 1) s výsledkem 6, asi se na to vykašlu a jdu domů :-)
To jo :-)).
Chamurappi
Profil
Reaguji na Timyho:
Přesnější už to asi nebude.
Ještě existuje typ decimal. Ale Math.Pow bohužel decimaly nebaští.


Reaguji na Jokera:
velmi veselý příklad
To mi připomnělo tuhle zajímavost s operátorem ^ v JavaScriptu.
Werewolf
Profil
Timy:
Fajn, aspoň se zdokonalím :-)
Možná půjde to mocnění zapsat do cyklu... Zkusím to.
Kajman_
Profil *
Ještě se musí odečíst jednička, pokud to má být součet zrnek obilí na šachovnici, pokud je na prvním políčku 1 zrno, na druhém dvě, na třetím čtyři atd.

Vaše odpověď

Mohlo by se hodit

Příspěvky nesouvisející s webem budou odstraněny.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: