Autor Zpráva
Anonymní
Profil *
preco mi 10/3 vrati 3.33333333333 ? chcem aby mi to vratilo pekne 3.. alebo 12/10 by v c bolo predsa 1... ako urobit aby mi vratilo len integer cisla?
Martin
Profil
zadej do googlu celočíselné dělení, uvidíš, že to najdeš
Casero
Profil
a nestčí ti zaokrouhlení???... round(10/3)
Retal
Profil
No propána, to by svět vypadal, kdyby programovací jazyky automaticky vracely 10/3 = 3. Jak píše Casero - zaokrouhli si to přece sám :)
Tomik
Profil
round(10/3);

Operátor "%" vrací zbytek po dělení.
Tomik
Profil
Retal a Casero
Grr.. zase pozdě... :)
thingwath
Profil
Retal
Tak by to mělo být :-) Nebýt automatické PHP konverze sem a tam mezi bůhvíčím :-)
Anonymní
Profil *
aha, uz viem preco mi to zo SetType() neislo - najprv som napisal SetType($premenna, "integer"); a potom $premenna = 10 / 3; .. kes som to vymenil, uz mi to islo.. dik ;)

akosi som to napisal do ineho prispevku.. LOL

Casero
round(10/3) ?? a co round(9/10) ?? to mi vrati 1 ?! preboha..

Retal
thingwath ma pravdu, ved ked chcem float napisem 10.00/3.00 , inak staci 10/3...
Anonymní
Profil *
Retal
No propána, to by svět vypadal, kdyby programovací jazyky automaticky vracely 10/3 = 3
no c++ vracia 10/3 = 3 a to ho pouziva zrejem viac ludi ako php
DoubleThink
Profil *
no c++ vracia 10/3 = 3 a to ho pouziva zrejem viac ludi ako php

Nemíchejme hrušky a jablka. Céčko opravdu vrátí 10/3 = 3, pokud jsou vstupní a výstupní hodnoty typu integer. Céčko totiž není tak splachovací jako PHP - nemění za chodu datové typy - proto je taky výrazně výkonější a méně náročné na HW prostředky.
mig
Profil *
Céčko totiž není tak splachovací jako PHP - nemění za chodu datové typy - proto je taky výrazně výkonější a méně náročné na HW prostředky.

Ale to snad ne.

Já vždycky myslel že je to tím, že Céčkové programy jsou kompilované, PHP skripty jsou interpretované....
Casero
Profil
round(10/3) ?? a co round(9/10) ?? to mi vrati 1 ?! preboha..
c++ by ti vrátilo nulu??...hmm
mig
Profil *
c++ by ti vrátilo nulu??...hmm

A co se divíš! Tak je to u všech porgramovacích jazyků se silnou typovou kontrolou.
Takový výsledek je dokonce žádoucí.

Většinou tě totiž zajímá nejen výsledek celočíselného dělení, ale i zbytek (modulo).
Umožňuje to napřiklad převádět časové údaje z vteřin na minuty, hodiny, dny týdny.....
thingwath
Profil
mig
I pro C existuje interpet :-)
DoubleThink
Profil *
Já vždycky myslel že je to tím, že Céčkové programy jsou kompilované, PHP skripty jsou interpretované....

Netvrdím opak

Interpret s kompilerem moc porovnávat nejde to je pravda, ale můžeš porovnat Céčko třeba s Basicem nebo Pascalem.
mig
Profil *
ale můžeš porovnat Céčko třeba s Basicem nebo Pascalem

Ono budeš mít rozdíl i mezi programy v céčku+MFC , nebo v céčku s čistým WinAPI. A to jak v rychlosti, tak velikosti (celkem s přilinkovanýma knihovnama).

Podstatnej rozdíl mezi PHP a céčkem je, že céčkový program se při spuštění nepřekládá (neinterpretuje), což u PHP skriptů neplatí.
thingwath
Profil
mig
Čisté WinAPI, to je hezké slovní spojení :-) Myslím ale, že DoubleThink tím chtěl říct, že porovnání smysluplné je, protože jde o jazyk a ne o konkrétní implementaci (i když PHP je víceméně určeno jenom tou jednou implementací, pro C existuje standard). Ježto C může být interpretované (a také takový interpret existuje) a teoreticky není jediný důvod, proč by PHP skripty nešlo kompilovat tak jako programy v C.
twain
Profil *
thingwath
Čisté WinAPI, to je hezké slovní spojení :-) Myslím ale, že DoubleThink tím chtěl říct, že porovnání smysluplné je, protože jde o jazyk a ne o konkrétní implementaci (i když PHP je víceméně určeno jenom tou jednou implementací, pro C existuje standard). Ježto C může být interpretované (a také takový interpret existuje) a teoreticky není jediný důvod, proč by PHP skripty nešlo kompilovat tak jako programy v C.

- zkus si na google vyhledat spojení čisté winapi čisté C - budeš překvapen - jsou to poměrně běžná spojení
- porovnávat PHP a C lze, ale vždy z toho C vyjde lépe než PHP - rozhodně bych se neodvažoval tvrdit, že C je rychlejší protože nemění za chodu datové typy. C programu počítač rozumí a nemusí mu ho nikdo předžvýkat při každém spuštění - proto je rychlejší.

- interpretované C ve smyslu při každém spuštění probíhá překlad je blbost a neexistuje pro to rozumný důvod (ale v C programuju teprve 10 let ;-))
- ano PHP skripty je možné kompilovat, výsledek jsem měl možnost vidět a je to hodně velká nouzovka.
thingwath
Profil
http://root.cern.ch/root/Cint.html

C programu počítač nerozumí. Nerozumí ani PHP programu. Rozumí zkompilovanému binárnímu kódu, který je jako takový (zdůrazňuji jako takový) stejný ať už pochází z C, Pascalu nebo třeba i toho PHP.
-error414
Profil *
PHP jde opravdu kompilovat, uz sem ten odkaz sem jednou daval tak pokud to vadi tak ho smazte http://www.error414.com/clanek_233.html
mig
Profil *
C programu počítač nerozumí. Nerozumí ani PHP programu. Rozumí zkompilovanému binárnímu kódu, který je jako takový (zdůrazňuji jako takový) stejný ať už pochází z C, Pascalu nebo třeba i toho PHP.

Ale jistě, všichni zjednodušujeme. Počítač (procesor) rozumí programu (binárnímu kódu), člověk rozumí tomu co napíše (zdrojovému kódu). Aby to počítač správně pochopil potřebuje překladač. Každý překladač lze chápat jako interpret.

Ale snad si rozumíme.
Kompilátor přeloží zdroják pouze jednou a je na tom podobně jako překladatel knih.
Obecně všechny skripty jsou při spuštění opakovaně překládány, což lze přirovnat k tlumočníkovi řeči.
Je rychlejší a efektivnější si přečíst knihu v češtině, než si najmout tlumočníka, který mi ji přetlumočí.....

To bylo podstatou mojí prvotní reakce.
alda78
Profil *
floor(10/3);
Toto téma je uzamčeno. Odpověď nelze zaslat.